home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
INTER53A.ZIP
/
INTERRUP.D
< prev
next >
Wrap
Text File
|
1997-01-12
|
360KB
|
10,701 lines
Interrupt List, part 4 of 16
Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
--------K-16FF-------------------------------
INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
AH = FFh
DX = scan code
Return: AL = status
00h success
01h failure
Program: KBUF is a keyboard buffer expander by Mark Adler
SeeAlso: AH=05h
--------V-16FF-------------------------------
INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
AH = FFh
Return: AL = interrupt number to which BIOS keyboard handler has been relocated
AL+1 = Zoom interrupt number
BX = hotkey
Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
the default hot key is F10
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
Index: hotkeys;OPTIMA 1024 VGA
----------16FF--BH00-------------------------
INT 16 - FREEZE.COM - INSTALLATION CHECK
AH = FFh
BH = 00h
Return: BH = FFh if installed
Program: FREEZE is a PC Magazine utility
--------d-16FF70BX0000-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
AX = FF70h
BX = 0000h
CX = 4C69h ('Li')
DX = 6E6Bh ('nk')
Return: AX = 0000h
CX = 4350h ('CP')
DH = major version
DL = minor version
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
--------d-16FF70BX0001-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0001h
DL = ???
Return: AX = ???
DH = ???
SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
--------d-16FF70BX0002-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0002h
CX = ???
DX = ???
Return: AX = ??? or FFFEh/FFFFh on error
DL = ???
BUG: DRIVEMAP will branch to random locations for BX values other than
those listed above for v8.0-9.0 because a) the incorrect register is
range-tested, resulting in BX=0003h-5CD6h being accepted as valid
function numbers, and b) the conditional which branches on invalid
function numbers jumps to the following instruction, becoming a NOP
SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
Index: installation check;DRIVEMAP
--------T-16FF80BX0000-----------------------
INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
AX = FF80h
BX = 0000h
CX = 0000h
DX = 0000h
Return: CX = 5555h if installed
Program: CPTASK is a task switcher by Central Point Software
--------T-16FF80BX0001-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0001h
???
Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
BX = ??? (PSP segment of resident code???)
--------T-16FF80BX0002-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0002h
Return: DX:SI -> ???
--------T-16FF80BX0003-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
AX = FF80h
BX = 0003h
Return: AX = flags (see #0514)
SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
Bitfields for CPTASK flags:
Bit(s) Description (Table 0514)
10 ???
13 ???
14 ???
15 ???
--------T-16FF80BX0004-----------------------
INT 16 U - PC Tools v8+ CPTASK - SET ???
AX = FF80h
BX = 0004h
CX = new value of ???
Return: ???
Note: this function also sets bit 14 of the flags word returned by
AX=FF80h/BX=0003h
--------T-16FF80BX0005-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
AX = FF80h
BX = 0005h
Return: AX = number of active tasks???
--------T-16FF80BX0006-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
AX = FF80h
BX = 0006h
Return: AX = old state (0000h clear, 0001h set)
Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
--------T-16FF80BX0007-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0007h
ES:DI -> ???
???
Return: ???
--------T-16FF80BX0008-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0008h
???
Return: ???
--------T-16FF80BX0009-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0009h
Return: CL = ???
CH = ??? (01h or 02h)
--------T-16FF80BX000A-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Ah
DS:SI -> 128-byte buffer containing ???
--------T-16FF80BX000B-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Bh
DX = index of ??? task (1-10)
--------T-16FF80BX000C-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
AX = FF80h
BX = 000Ch
CX = new delay time in minutes
--------T-16FF80BX4350-----------------------
INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
AX = FF80h
BX = 4350h ('CP')
CX = 5354h ('ST')
Return: never returns; terminates all tasks and exits to program originally
calling CPTASK
--------U-16FF90-----------------------------
INT 16 U - PC Tools v8+ DESKTOP - ???
AX = FF90h
???
Return: ???
Note: available only when popped up
--------U-16FF91-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF91h
???
Return: AX = 0000h
Note: calls AX=FFFDh after ???
SeeAlso: AX=FF92h,AX=FFFDh
--------U-16FF92-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF92h
???
Return: AX = 0000h
Note: like AX=FF91h, but temporarily sets ??? to 3
SeeAlso: AX=FF91h,AX=FFFDh
--------U-16FF93-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
AX = FF93h
--------U-16FF94-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF94h
CX = ??? (default 0017h)
--------U-16FF95-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF95h
BX = ???
--------U-16FF96-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF96h
CL = ???
Return: AX = ???
--------U-16FF97-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF97h
DS:DX -> buffer for ??? (see #0515)
Return: ???
Format of PC Tools DESKTOP buffer:
Offset Size Description (Table 0515)
00h 48 BYTEs ???
30h 128 BYTEs ???
--------U-16FF98-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
AX = FF98h
DX = byte offset in file of overlay header (see #0516)
Return: BX = file handle for DESK.OVL file
Desc: open the DESK.OVL file, seek to the specified offset, read in the
overlay header, and seek to the offset specified by the header
Format of PC Tools DESKTOP overlay header:
Offset Size Description (Table 0516)
00h 12 BYTEs NUL-padded ASCII overlay filename
0Ch DWORD offset within DESK.OVL file of actual overlay
--------U-16FF99-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF99h
???
Return: ???
--------U-16FF9A-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
AX = FF9Ah
Return: ES:BX -> name of current color scheme
Note: available even if not popped up
--------U-16FF9B-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - UNUSED
AX = FF9Bh
Return: ???
Note: sounds triple-length beep
--------T-16FF9C-----------------------------
INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
AX = FF9Ch
BL = function
00h set ??? pointer
DS:SI -> ???
01h clear pointer to 0000h:0000h
----------16FF9D-----------------------------
INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
AX = FF9Dh
ES:BX -> ??? word
Return: ???
Note: if ES is non-zero, the word pointed at by ES:BX determines whether the
??? flag is cleared (word = 0000h) or set (word is nonzero). The
flag is always cleared if ES=0000h.
--------U-16FF9E-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF9Eh
DL = ???
bit 7: ???
bits 6-0: function number??? (00h,01h,other)
???
Return: ???
--------U-16FFA1-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA1h
???
Return: ???
Note: same as AX=FFA2h, except ??? set to FFh
SeeAlso: AX=FFA2h
--------U-16FFA2-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA2h
???
Return: ???
Note: calls AX=FFC7h (remove window) and AX=FFFDh
SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
--------y-16FFA3BX0000-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
AX = FFA3h
BX = 0000h
CX = 0000h
Return: AX = segment of resident code
BX = 5555h
CX = 5555h
Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
--------y-16FFA3BX0001-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0001h
CX = 0001h
Return: AX:BX -> ???
CX = BX
--------y-16FFA3BX0002-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0002h
CX = 0002h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0003-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0003h
CX = 0003h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0004-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
AX = FFA3h
BX = 0004h
CX = 0004h
SeeAlso: AX=FFA3h/BX=0005h
--------y-16FFA3BX0005-----------------------
INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
AX = FFA3h
BX = 0005h
CX = 0005h
SeeAlso: AX=FFA3h/BX=0004h
--------y-16FFA3BX0006-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
AX = FFA3h
BX = 0006h
CX = 0006h
DX = current PSP segment as known to DOS??? or 0000h
--------d-16FFA3BXFFA3-----------------------
INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
AX = FFA3h
BX = FFA3h
CX = FFA3h
Return: BX = CX = 5555h if installed
AX = resident code segment
Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
access indicator on the screen; in v7 and v8, this function was
provided by DATAMON
Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
--------U-16FFA4-----------------------------
INT 16 U - PC Tools v7-8 DESKTOP - ???
AX = FFA4h
Return: ???
Notes: available even when not popped up
sets unknown flag if ??? conditions met
SeeAlso: AX=FEA4h
--------c-16FFA5CX1111-----------------------
INT 16 - PC-Cache v6+ - INSTALLATION CHECK
AX = FFA5h
CX = 1111h
Return: CH = 00h if installed
ES:DI -> internal data (see #0517)
CL = cache state
01h enabled
02h disabled
SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
Format of PC-Cache internal data:
Offset Size Description (Table 0517)
-1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
each byte is either blank (20h) or drive letter (41h-54h)
-8 BYTE ???
-7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
-5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
-3 3 BYTEs ???
--------c-16FFA5CXAAAA-----------------------
INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
AX = FFA5h
CX = AAAAh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
SeeAlso: AX=FFA5h/CX=CCCCh
--------c-16FFA5CXCCCC-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
AX = FFA5h
CX = CCCCh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
Note: delayed writes are automatically disabled on EXECing
(see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
however, delayed writes are not automatically reenabled upon the
program's termination in v6.
SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXDDDD-----------------------
INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
AX = FFA5h
CX = DDDDh
SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXEEEE-----------------------
INT 16 - PC-Cache v6+ - ENABLE CACHE
AX = FFA5h
CX = EEEEh
SeeAlso: AX=FFA5h/CX=DDDDh
--------c-16FFA5CXFFFF-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE
AX = FFA5h
CX = FFFFh
SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
--------U-16FFA6-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFA6h
Return: DS:SI -> ???
Note: available only when popped up
--------U-16FFA7-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
AX = FFA7h
Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
--------U-16FFA8-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFA8h
DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
???
Return: ???
Notes: available only when popped up
strings copied into internal buffer, among other actions
--------U-16FFA9-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
AX = FFA9h
Return: DS:SI -> version string
--------U-16FFAA-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFAAh
???
Return: ???
Note: available only when popped up
--------U-16FFAB-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
AX = FFABh
Return: DS:SI -> editor setting strings???
--------U-16FFAC-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFACh
DL = ???
Note: available only when popped up
--------U-16FFAD-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFADh
DL = ???
--------U-16FFAE-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFAEh
Return: AL = ???
--------U-16FFAF-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFAFh
DL = ???
--------U-16FFB0-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFB0h
BL = ???
--------U-16FFB1-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFB1h
???
Return: ???
--------U-16FFB2-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB2h
Return: DS:SI -> ???
--------U-16FFB3-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
AX = FFB3h
???
Return: ???
Note: available only when popped up
--------U-16FFB4-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
AX = FFB4h
Note: available only when popped up
SeeAlso: AX=FFBBh
--------U-16FFB5-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
AX = FFB5h
BX = window specifier (000Fh to 0019h) (see #0518)
DX = 0000h get, nonzero = set
ES:DI -> window parameter buffer (see #0519)
SeeAlso: AX=FFCBh
(Table 0518)
Values for PC Tools DESKTOP window specifier:
000Fh comm/FAX
0014h hotkey selection
0015h ASCII table
0016h system colors menu
Format of PC Tools DESKTOP window parameters:
Offset Size Description (Table 0519)
00h BYTE rows in window, not counting frame
01h BYTE columns in window, not counting frame
02h BYTE row number of top of window
03h BYTE 2*column number of left of window
04h BYTE character attribute for ???
05h BYTE character attribute for background/border
06h BYTE character attribute for ???
07h DWORD pointer to ??? on screen
0Bh 4 BYTEs ???
0Fh BYTE nonzero if window may be resized
Note: if running in monochrome mode, character attributes at offsets 04h to
06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
are changed to 07h on reading
--------U-16FFB6-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB6h
Return: AH = ???
AL = ???
--------U-16FFB7-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
AX = FFB7h
BX = direction
0000h copy to buffer
else copy from buffer
DS:SI -> 70-byte buffer with ???
Return: data copied
Note: available only when popped up under v6.0+
--------U-16FFB8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
AX = FFB8h
BH = subfunction
00h get
Return: BL = old value of ???
CL = old value of ??? (v6.0+)
CH = old value of ??? (v6.0+)
nonzero set
BL = new value for ???
CL = new value for ??? (v6.0+)
CH = new value for ??? (v6.0+)
DH = ???
Return: AL = old value replaced by CL (v6.0+)
AH = old value replaced by CH (v6.0+)
--------U-16FFB9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFB9h
???
Return: AX = ???
CX = ???
DS:SI -> ???
ES:DI -> ???
--------U-16FFBA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBAh
???
Return: AX = ???
Note: available only when popped up
--------U-16FFBB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
AX = FFBBh
Note: available only when popped up
SeeAlso: AX=FFB4h
--------U-16FFBC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
AX = FFBCh
--------U-16FFBD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
AX = FFBDh
???
Return: ???
--------U-16FFBE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBEh
???
Return: ???
Note: available only when popped up
--------U-16FFBF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBFh
BX = DOS file handle to write on
???
Return: ???
Note: available only when popped up
--------U-16FFC0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC0h
???
Return: AX = 0000h if successful
AX = FFFFh on error
Note: available only when popped up
--------U-16FFC1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC1h
BL = ???
ES:DI -> data structure (see #0520)
???
Return: AX = ???
Note: available only when popped up
SeeAlso: AX=FFC2h,AX=FFC3h
Format of PC Tools DESKTOP data structure:
Offset Size Description (Table 0520)
00h WORD ???
02h WORD ???
04h WORD ???
06h WORD ???
08h WORD ???
0Ah BYTE ???
0Bh BYTE ??? (zero/nonzero)
---v7.1---
0Ch WORD ???
0Eh BYTE ???
0Fh WORD ???
11h WORD ???
???
--------U-16FFC2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC2h
BL = ???
ES:DI -> data structure (see #0520)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC3h
--------U-16FFC3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC3h
BL = ???
ES:DI -> data structure (see #0520)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC2h
--------U-16FFC4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC4h
Return: AL = ???
BX = segment of scratch space???
CX = segment of stored screen data (section covered by window???)
DX = segment of window parameters for ???
ES:BP -> ???
Note: available only when popped up in versions prior to 6.0
--------U-16FFC5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
AX = FFC5h
Return: BL = Desktop state
00h if nonresident
nonzero if loaded resident
Note: available only when popped up; should call AX=FFEFh first to ensure
that DESKTOP is active
SeeAlso: AX=FFEFh,AX=FFF3h
--------U-16FFC6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFC6h
BL = new value for ???
--------U-16FFC7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
AX = FFC7h
???
Return: ???
--------U-16FFC8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC8h
Return: DS:SI -> ???
Note: valid only while popped up
--------U-16FFC9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
AX = FFC9h
DS:SI -> characters to store in clipboard
CX = size in bytes
Return: CF set on error
Notes: available only when popped up
while copying, bytes of 00h and 0Ah are skipped
--------U-16FFCA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFCAh
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFCB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
AX = FFCBh
DX = window specifier???
Return: AX destroyed
Note: available only when popped up
SeeAlso: AX=FFB5h
--------U-16FFCC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
AX = FFCCh
DS:SI -> ASCIZ string
Return: AX = ???
CX = ???
ES:DI -> address past last character displayed (v5.1/5.5)
-> ??? on menu bar (v6.0)
--------U-16FFCD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFCDh
DS:DX -> ???
Return: ???
Note: available only when popped up
--------U-16FFCE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
AX = FFCEh
CX = ???
Return: nothing???
--------U-16FFCF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
AX = FFCFh
Note: available only when popped up
--------U-16FFD0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
AX = FFD0h
???
Return: ???
Note: available only when popped up
--------U-16FFD1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
AX = FFD1h
Return: BX = number of copies
DX = destination
00h cancel
01h LPT1
02h LPT2
03h LPT3
04h COM1
05h COM2
06h disk file
Note: available only when popped up
--------U-16FFD2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD2h
BX = ???
Return: BL = ???
Note: available only when popped up
--------U-16FFD3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD3h
DS:SI -> 92-byte data record for ???
Return: ???
SeeAlso: AX=FED3h
--------U-16FFD4BH3C-------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
AX = FFD4h
BH = 3Ch create file (with no attributes)
3Dh open file
41h delete file
BL = access mode
00h read only
01h write only
02h read/write
DS:SI -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: operation is attempted in (in order) the directory from which the
desktop was started/run???, the directory specified with the
filename, X:\PCTOOLS\, and X:\
--------U-16FFD5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD5h
???
Return: ???
Note: available only when popped up
--------U-16FFD6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD6h
BX = ???
CX = ???
DX = offset in ???
???
Return: ???
Note: available only when popped up
--------U-16FFD7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD7h
???
Return: BL = ???
Note: available only when popped up
--------U-16FFD8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
AX = FFD8h
DS:BX -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: pops up confirmation menu if file already exists
only available when popped up???
--------U-16FFD9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFD9h
Return: AX = ???
Note: available only when popped up
--------U-16FFDA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
AX = FFDAh
DS:SI -> ??? (v5.1/5.5 only)
Return: DS:SI -> filename
--------U-16FFDB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFDBh
BL = ???
Note: available only when popped up
--------U-16FFDC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
AX = FFDCh
Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
original values
Index: uninstall;PC Tools DESKTOP
--------U-16FFDDBX0000-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
AX = FFDDh
BX = 0000h
Return: CX = 5555h
DX = 5555h if PCShell installed in resident mode
--------U-16FFDDBX0001-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0001h
Return: CF clear if request successful (PCShell will pop up)
CF set on error
SeeAlso: AX=FFDDh/BX=0003h
--------U-16FFDDBX0002-----------------------
INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
AX = FFDDh
BX = 0002h
Return: AL =
00h ???
01h ???
Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
awaits a keystroke, and aborts the current process
--------U-16FFDDBX0003-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0003h
SeeAlso: AX=FFDDh/BX=0001h
--------U-16FFDDBX0004-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - GET ???
AX = FFDDh
BX = 0004h
Return: CF clear if successful
DS:SI -> ???
--------U-16FFDDBX0005-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0005h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0006-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0006h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0007-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
AX = FFDDh
BX = 0007h
Return: CF clear if successful
SeeAlso: AX=FFDDh/BX=0008h
--------U-16FFDDBX0008-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
AX = FFDDh
BX = 0008h
Return: CF undefined
SeeAlso: AX=FFDDh/BX=0007h
--------U-16FFDDBX0009-----------------------
INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
AX = FFDDh
BX = 0009h
Return: CF clear if successful
DS:SI -> list of pointers (see #0521)
Format of PC Tools PCShell returned pointer list:
Offset Size Description (Table 0521)
00h WORD offset of WORD containing ???
02h WORD offset of name of program to execute
04h WORD offset of 80-byte buffer for ???
06h WORD offset of buffer for ??? (length in WORD preceding buffer)
08h WORD offset of buffer for ??? (length in WORD preceding buffer)
--------U-16FFDDBX000A-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
AX = FFDDh
BX = 000Ah
Return: CX = 5555h if running
DX = 5555h
Note: also sets a flag
--------U-16FFDDBX000B-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - ???
AX = FFDDh
BX = 000Bh
???
Return: CX = 5555h if PCRUN active
DX = 5555h
Note: also clears flag set by AX=FFDDh/BX=000Ah
--------U-16FFDE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
AX = FFDEh
DS:DX -> menu description (must be on a paragraph boundary)
Return: AX = ???
AL seems to be the number of the selected button
Note: available only when popped up
SeeAlso: AX=FFEEh
--------U-16FFDF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFDFh
???
Return: ???
--------U-16FFE0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE0h
CX = ???
DX = ???
Note: available only when popped up
--------U-16FFE1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
AX = FFE1h
--------U-16FFE2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE2h
DX = ???
Return: ???
Note: available only when popped up
--------U-16FFE3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
AX = FFE3h
BL = character to print to currently open printer or print file
Return: CF set on error
Note: available only when popped up
SeeAlso: INT 17/AH=00h
--------U-16FFE4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE4h
DX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
AX = FFE5h
DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
DX = segment of window parameters???
Return: AX = DOS file handle for file
DS:DX -> filename???
FFFFh if function cancelled by user
Note: available only when popped up
SeeAlso: AX=FFDAh
--------U-16FFE6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
AX = FFE6h
Return: AX = 0000h if no key available
else BIOS keycode
Notes: available only when popped up
invokes INT 28 idle interrupt before checking for key
--------U-16FFE7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE7h
BX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
AX = FFE8h
CX = number
DH = attribute
DS:SI -> destination for ASCII number
Return: DS:SI buffer filled in with alternating characters and attributes
--------U-16FFE9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
AX = FFE9h
Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
Note: available only when popped up
--------U-16FFEA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
AX = FFEAh
DS:SI -> counted string (count byte followed by string)
Return: ???
Note: available only when popped up
--------U-16FFEB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFEBh
???
Return: ???
--------U-16FFEC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
AX = FFECh
DS:SI -> FAR routine to ???
BX = ???
???
Return: AX = keystroke
FFFFh if F10 pressed to go to menu
Notes: available only when popped up
invokes INT 28 while waiting for keystroke
F10 is hotkey to Desktop menu
Index: hotkeys;PC Tools DESKTOP
--------U-16FFED-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFEDh
Return: AX = ???
Note: available only when popped up
--------U-16FFEE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
AX = FFEEh
DS:SI -> pulldown menu system description (see #0522)
Return: AX destroyed
Notes: available only when popped up
if the accessory does not need any menu items of its own, it should
call AX=FFFAh instead
SeeAlso: AX=FFF7h,AX=FFFAh
Format of PC Tools DESKTOP pulldown menu system description:
Offset Size Description (Table 0522)
00h WORD offset of menu bar contents (counted string)
02h WORD number of items on menu bar
04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
18h WORD offset of first menu definition (see #0523)
1Ah WORD offset of second menu definition
...
Format of PC Tools DESKTOP menu definition:
Offset Size Description (Table 0523)
00h WORD offset of menu contents (see #0524)
02h WORD number of entries in menu
04h for each entry:
Offset Size Description
00h BYTE scancode of Alt-key to invoke entry
01h BYTE character to highlight (01h=first, etc)
02h WORD offset of FAR routine to handle selection
Format of PC Tools DESKTOP menu contents:
Offset Size Description (Table 0524)
00h BYTE number of lines in menu
01h BYTE width of menu
02h N BYTEs counted strings, one for each line in menu
--------U-16FFEFCX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
AX = FFEFh
CX = 0000h
Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
BX = segment of resident portion
AX = ??? (v5.1/5.5 only)
SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
--------U-16FFF0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFF0h
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFF1BX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
AX = FFF1h
BX = 0000h leave ??? flag as is
nonzero set ??? flag
Return: CX = 5555h if installed
DX = 5555h
--------U-16FFF2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
AX = FFF2h
DS:SI -> ASCIZ function key label string (each label preceded by '[')
or help text
Return: AX destroyed
Notes: available only when popped up
if the specified string does not start with '[', it is displayed
centered on the bottom line, else the function key labels are shown
--------U-16FFF3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
AX = FFF3h
Note: releases any EMS being used; restores video mode, page, and cursor
shape; and restores interrupt vectors
SeeAlso: AX=FFC5h,AX=FFEFh
Index: uninstall;PC Tools DESKTOP
--------U-16FFF4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFF4h
???
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF6h
--------U-16FFF5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
AX = FFF5h
Return: ES:BX -> screen attributes data structure (see #0525)
AL = ??? (v6.0+)
Format of PC Tools DESKTOP attribute data structure:
Offset Size Description (Table 0525)
-1 BYTE attribute for desktop background
00h BYTE attribute for normal characters on desktop menu
01h BYTE attribute for highlighted characters on desktop menu
02h 5 BYTEs ???
07h BYTE attribute for dialog boxes
08h 15 BYTEs ???
17h BYTE attribute for message boxes
--------U-16FFF6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
AX = FFF6h
DS = segment of editor buffer structure (see #0526)
BX = ???
DX = segment of window parameters structure (see #0519)
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF4h
Format of PC Tools DESKTOP editor buffer structure:
Offset Size Description (Table 0526)
00h WORD offset of current cursor position in buffer segment
02h 2 BYTEs ???
04h WORD offset of beginning of file data in buffer segment
06h 10 BYTEs ???
10h N BYTEs ASCIZ name of file being edited
--------U-16FFF7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
AX = FFF7h
DS:SI -> ???
???
Return: ???
Notes: available only when popped up
performs input processing on the menu bar set up with AX=FFEEh
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFF8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
AX = FFF8h
DS:0000h -> window parameters structure (see #0519)
DS:BX -> DWORD to store address of ??? on screen
Return: ???
--------U-16FFF9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
AX = FFF9h
ES:BX -> FAR routine to redisplay the utility's window
Note: available only when popped up
--------U-16FFFA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
AX = FFFAh
Notes: available only when popped up
adds the "Window" option to the "Desktop" option which is the only one
available when no accessories are active. Unlike AX=FFEEh, no
additional menu items are added between "Desktop" and "Window"
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFFB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
AX = FFFBh
Return: ???
Notes: available only when popped up
performs input processing on the standard menu bar set up with AX=FFFAh
SeeAlso: AX=FFF7h
--------U-16FFFC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
AX = FFFCh
Return: ES:BX -> hotkey table (see #0527)
DS:DX = original INT 09 vector
Format of PC Tools DESKTOP hotkey table:
Offset Size Description (Table 0527)
00h 2 BYTEs scancode/shift state for desktop hotkey
02h 2 BYTEs scancode/shift state for clipboard paste key
04h 2 BYTEs scancode/shift state for clipboard copy key
06h 2 BYTEs scancode/shift state for screen autodial key
--------U-16FFFD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
AX = FFFDh
Return: AX destroyed
Note: copies 4000 bytes from ??? to ??? under certain circumstances
SeeAlso: AX=FF91h,AX=FF92h
--------M-16FFFE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
AX = FFFEh
SeeAlso: AX=FFFFh,INT 33/AX=0001h
--------M-16FFFF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
AX = FFFFh
SeeAlso: AX=FFFEh,INT 33/AX=0002h
--------P-17----DX0ABC-----------------------
INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
DX = 0ABCh
Return: AX = AAAAh
DX = BAAAh
ES = code segment of resident portion
--------P-17----DX0B90-----------------------
INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
DX = 0B90h
Return: DX = ABBBh
ES = code segment of resident portion
--------P-17----DX0B91-----------------------
INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
DX = 0B91h
Return: DX = ABCBh
ES = code segment of resident portion
--------P-17----DX0F5F-----------------------
INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
DX = 0F5Fh
Return: AX = AAAAh
DX = F555h
ES = code segment of resident portion
--------B-1700-------------------------------
INT 17 - PRINTER - WRITE CHARACTER
AH = 00h
AL = character to write
DX = printer number (00h-02h)
Return: AH = printer status (see #0528)
SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
SeeAlso: INT 4B/AH=00h
Bitfields for printer status:
Bit(s) Description (Table 0528)
7 not busy
6 acknowledge
5 out of paper
4 selected
3 I/O error
2-1 unused
0 timeout
Note: for Tandy 2000, bit 7 indicates printer-busy when set rather than clear
--------B-1701-------------------------------
INT 17 - PRINTER - INITIALIZE PORT
AH = 01h
DX = printer number (00h-02h)
Return: AH = printer status (see #0528)
Note: some printers report that they are ready immediately after
initialization when they actually are not; a more reliable result may
be obtained by calling AH=02h after a brief delay
SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h
--------B-1702-------------------------------
INT 17 - PRINTER - GET STATUS
AH = 02h
DX = printer number (00h-02h)
Return: AH = printer status (see #0528)
Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h
--------P-1702--DX0000-----------------------
INT 17 - INSET - INSTALLATION CHECK
AH = 02h
DX = 0000h
CX = 07C3h (1987d)
Return: CX = 07C2h (1986d) if installed
Program: INSET is a text/graphics integration program
--------b-170200BX5050-----------------------
INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
DX:BX -> far entry point to Advanced BIOS (see #0529)
---EPP Revision 7---
DX = EPP I/O base address
ES:BX -> far entry point to EPP BIOS (see #0529,#0530)
03h if installed but specified port not supported
CF set
Program: The Enhanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
(Table 0529)
Call EPP BIOS entry point with:
DL = port number (v1.0)
DX = (Revision 7) EPP port I/O base address
AH = function
00h Query Configuration
Return: AH = 00h if successful
AL = IRQ number used by port or FFh if no IRQ
BH = EPP BIOS revision (major in high nybble,
minor in low nybble)
BL = I/O capabilities (see #0532)
ES:DI -> ASCIZ driver information/version text
---v1.0,v3.0---
CX = I/O port base address for parallel port
---Revision 7---
CL = EPP chipset code (see #0533)
CH = hardware manufacturer's product code
01h Set Mode
AL = mode bits (see #0534)
Return: AX,BX destroyed
02h Get Mode
Return: AL = mode bits (see also #0534)
bit 7: EPP port interrupts enabled
AH = 00h
CF clear
BX destroyed
03h Interrupt Control
AL = subfunction
00h enable parallel port interrupts
01h disable parallel port interrupts
Return: AH = status (00h,05h,06h) (see also #0531)
04h EPP Reset
Return: AH = 00h if successful
AL destroyed
05h perform Address-Write/Device-Select I/O cycle
AL = device address
Return: AH = status
AL destroyed
06h perform Address-Read I/O cycle
Return: AL = returned address/device data
AH = status
07h write byte
AL = data byte to write
Return: AH = status
08h output block of data
DS:SI -> block of data to be sent to parallel port
CX = number of bytes to output
Return: AH = status (see #0531)
CX = number of unsent bytes
09h read byte of data
Return: AH = status (see #0531)
AL = byte read from parallel port
0Ah read block of data
ES:DI -> buffer for received data
CX = number of bytes to read from paralle port
Return: AH = status (see #0531)
ES:DI buffer filled if successful
CX = number of bytes not transferred
0Bh Address/Byte-Read
AL = device address
Return: AH = status (see #0531)
AL = byte read if successful
0Ch Address/Byte-Write
AL = device address
DH = data byte (v1.0,v3.0)
CL = data byte (Revision 7)
Return: AH = status (see #0531)
0Dh Address/Block-Read
AL = device address
ES:DI -> buffer for received data
CX = number of bytes to read
Return: AH = status (see #0531)
CX = number of bytes NOT transferred
0Eh Address/Block-Write
AL = device address
ES:DI -> data to be sent (v1.0,v3.0)
DS:SI -> data to be send (Revision 7)
CX = number of bytes to write
Return: AH = status (see #0531)
CX = number of bytes NOT transferred
0Fh Lock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8)
Return: AH = status (00h,03h,05h) (see #0531)
10h Unlock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8)
Return: AH = status (00h,03h,05h) (see #0531)
11h Device Interrupt
AL = multiplexor port number
00h if no multiplexor, else mux device port (01h-08h)
CH = subfunction
00h disable device interrupts
01h enable device interrupt
ES:DI -> interrupt event handler
Return: AH = status (00h,03h,05h,06h) (see #0531)
Note: AMI BIOS v1.00.12.AX1T uses AL to specify en/disabled
and ignores multiplexor port number; it also always
sets INT 0F to the address specified in ES:DI
12h Real-Time Mode
AL = subfunction
00h check whether any real-time devices present
01h add (advertise) real-time device
02h remove real-time device
Return: AH = status (00h,05h,06h,07h) (see #0531)
AL = real-time devices present? (00h no, 01h yes)
Note: unlike all other functions, this one does not use DL/DX
Return: AH = status (see #0531)
CF clear if successful
CF set on error
BX destroyed
SeeAlso: #0530
(Table 0530)
Call EPP BIOS (Revision 7) entry point multiplexor functions with:
DX = EPP port base I/O address
AH = function
40h Query Mux
Return: AH = status (see #0531)
AL = currently-selected port
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BX destroyed
41h Query Device Port
AL = EPP multiplex device port (1-8)
Return: AH = status (see #0531)
CH = status flags (see #0535)
BX = EPP product/device ID (0000h if undefined)
42h Set Product ID
AL = EPP multiplex device port (1-8)
CX = EPP product ID
Return: AH = status (see #0531)
BX destroyed
50h Query Daisy Chain
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #0531)
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BL = currently-selected device
BH = EPP daisy chain revision (high nybble = major)
CL = daisy-chain depth (00h if no daisy chain)
ES:DI -> ASCIZ driver vendor identification string
51h Rescan Daisy Chain (dynamically reassign port numbers)
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #0531)
BX destroyed
Note: these functions are only valid if a port multiplexor or daisy chain
is present
SeeAlso: #0529,INT 2D/AL=DCh
(Table 0531)
Values for EPP BIOS function status:
00h successful
02h unsupported command/feature
03h unsupported parallel port
05h unsupported in current mode
06h invalid subfunction
07h already ???
20h (AMI) multiplexor not present
40h multiplexor not present
41h multiplexor currently locked
80h I/O timeout
FFh invalid/unsupported function
SeeAlso: #0529,#0530
Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
Bit(s) Description (Table 0532)
0 multiplexor present
1 PS/2 bi-directional capable
2 daisy chain present
3 ECP capable
4 EPP software emulation supported
5 EPP capable
6 fast Centronics supported
7 standard EPP I/O map
SeeAlso: #0529
(Table 0533)
Values for EPP (Revision 7) chipset code:
00h Intel SL
01h FarPoint Communications
02h SMC
03h Chips&Technologies
04h Western Digital
05h National Semiconductor
SeeAlso: #0529
Bitfields for EPP BIOS mode bits:
Bit(s) Description (Table 0534)
0 set compatibility mode
1 set bi-directional mode
2 set EPP mode
---Revision 7---
3 set ECP mode
4 set EPP software emulation
5 set fast Centronics mode
6-7 reserved (0)
SeeAlso: #0529,#M051
Bitfields for EPP BIOS multiplex status flags:
Bit(s) Description (Table 0535)
0 port is selected
1 port is locked
2 interrupts are enabled
3 interrupt pending
SeeAlso: #0530
--------P-1703-------------------------------
INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
AH = 03h
Return: BX = ???
CX = ???
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
--------c-1703-------------------------------
INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
AH = 03h
DX = printer port number
CX = number of characters to print
DS:SI -> string
Return: AH = printer status (see #0528)
CX = number of characters actually printed
Desc: send an entire string of chars to the print spooler with a single call
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
--------c-1703--BX5A00-----------------------
INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
AH = 03h
BX = 5A00h
Return: AX = 5ACBh
DI = 0000h
ES = DMP code segment (also data segment)
Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
PCTODAY disk, volume 10, March 1991
--------N-170300-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
AX = 0300h
CX = type of socket from socket( domain, type, protocol )
DX = local identifier of socket (0 - 31)
Return: AX = 0000h success
CX = segment of 4500 byte transfer buffer
DX = offset of 4500 byte transfer buffer
= FFFFH failure
CX = error code
ENFILE 23
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function will initialize the interface the first time it is
called
SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-1704-------------------------------
INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
AH = 04h
Note: has no effect unless ELTSR is deactivated (see AX=0503h)
SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
--------N-170400-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
AX = 0400h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
--------P-170500-----------------------------
INT 17 U - Emulaser ELTSR - ???
AX = 0500h
???
Return: AX = unload status (0001h safe to unload, 0002h not safe)
BX = ???
CX = PSP segment of ELTSR
DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
SI = ???
DI = ???
SeeAlso: AH=04h,INT 1A/AH=E5h
--------N-170500-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
AX = 0500h
SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
--------P-170501-----------------------------
INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
AX = 0501h
Return: (see AX=0500h)
Note: restores interrupt vectors without checking whether they have been
hooked by later programs; should only be called if ELTSR reports
that it is safe to unload
SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
Index: uninstall;Emulaser ELTSR
--------P-170502-----------------------------
INT 17 U - Emulaser ELTSR - SET ???
AX = 0502h
BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
CL = ???
DL = ???
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
--------P-170503-----------------------------
INT 17 U - Emulaser ELTSR - DEACTIVATE???
AX = 0503h
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
--------P-1706-------------------------------
INT 17 U - Emulaser ELTSR - ???
AH = 06h
???
Return: ???
SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h
--------N-170600-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
AX = 0600h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
SeeAlso: AX=0E00h"DOSISODE"
--------P-1707-------------------------------
INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
AH = 07h
ES:DX -> ASCIZ filename to be opened
Return: ???
Note: new output will be appended to the specified file
SeeAlso: AH=08h,INT 1A/AH=E5h
--------N-170700-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
AX = 0700h
Note: this function just returns
SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
--------P-1708-------------------------------
INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
AH = 08h
???
Return: ???
Desc: close the file previously opened by function 07h
SeeAlso: AH=07h,INT 1A/AH=E5h
--------N-170800-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
AX = 0800h
SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
--------P-1709-------------------------------
INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
AH = 09h
BX = ???
CX = ???
DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AX = status
00h successful
FFh failed
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function calls through to INT 1A/AX=E401h, and thus requires
that either ELSPL or Disk Spool II be installed
SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
--------N-170900-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
AX = 0900h
SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
--------P-170A-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FILENAME
AH = 0Ah
ES:BX -> ??? buffer
CX = length of ??? buffer
Return: ???
Note: copies the specified name into the buffer passed to ELSPL as the
filename by AH=09h
SeeAlso: AH=09h,INT 1A/AH=E5h
--------N-170A00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "select"
AX = 0A00h
SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170B-------------------------------
INT 17 U - Emulaser ELTSR - GET ???
AH = 0Bh
Return: AX:BX -> ???
SeeAlso: AH=0Ah,INT 1A/AH=E5h
--------N-170B00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
AX = 0B00h
DX = local identifier of socket (0 - 31)
Note: this function sets the socket into non_block mode
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170C-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FLAG
AH = 0Ch
???
Return: ???
SeeAlso: AH=0Bh,INT 1A/AH=E5h
--------N-170C00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "close"
AX = 0C00h
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
--------P-170D-------------------------------
INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
AH = 0Dh
Return: AX = state (0000h off, 0010h on)
Desc: determine the actual state of ScrlLk even when Emulaser is controlling
the ScrlLk light as its activity indicator
SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
--------N-170D00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
AX = 0D00h
Note: this function is used to shutdown the interface
SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170E-------------------------------
INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
AH = 0Eh
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function is called by ELTSR on every INT 08 to allow data to be
processed in the background, but may also be called by applications
to give Emulaser additional CPU time
SeeAlso: AH=0Dh,INT 1A/AH=E5h
--------N-170E00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
AX = 0E00h
Return: CX = 1234h if installed
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function is used to check if the interface is loaded
SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
--------P-172000-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
AX = 2000h
BL = printer number???
Return: AX = status (see #0536)
BX = driver version number (BH=major,BL=minor)
CH = ??? (00h)
CL = ???
DX = ??? (0100h)
Note: also enables the remaining printer driver functions (2001h-2007h)
SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
(Table 0536)
Values for PC Paint function status:
0000h successful
0001h invalid printer???
0002h ???
0003h invalid subfunction
0005h driver disabled, must call function 00h first
0009h unknown printer error
000Bh printer not selected
000Ch printer out of paper
000Eh error while writing to serial printer
000Fh ???
0010h invalid function number
0011h value out of range
--------P-172001-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
AX = 2001h
BL = printer number???
Return: AX = status (see #0536)
--------P-172002-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
AX = 2002h
BL = printer number???
CL = desired information
00h printer type
Return: ES:DI -> ASCIZ printer name
01h paper size
DX = size index
Return: ES:DI -> ASCIZ paper size description
02h ???
Return: BX = ???
03h printer information???
DX = ???
ES:BX -> buffer for ??? (min 134 bytes)
Return: AX = status (see #0536)
SeeAlso: AX=2000h,AX=2004h
--------P-172003-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
AX = 2003h
ES:BX -> ???
Return: AX = status (see #0536)
SeeAlso: AX=2000h,AX=2004h
--------P-172004-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
AX = 2004h
BL = printer number???
Return: AX = status (see #0536)
ES:DI -> ???
SeeAlso: AX=2000h,AX=2003h
--------P-172005-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
AX = 2005h
BL = printer number???
Return: AX = status (see #0536)
Note: this function also clears the flag set by AX=2001h
SeeAlso: AX=2000h,AX=2001h,AX=2006h
--------P-172006-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
AX = 2006h
BL = printer number???
Return: AX = status (see #0536)
Note: this function also clears the flag set by AX=2001h and disables
functions other than AX=2000h
SeeAlso: AX=2000h,AX=2001h,AX=2005h
--------P-172007-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
AX = 2007h
Return: AX unchanged
SeeAlso: AX=2000h
--------N-172400-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
AX = 2400h
DL = new state
00h disabled
01h enabled
Return: DL = 24h if installed
DH = minor version number
CX = network address of this machine
AL = status (see #0537)
SeeAlso: AX=2403h,INT 16/AX=4500h
(Table 0537)
Values for NET.24 function status:
00h successful
01h timeout
02h header error
03h data error
04h busy
05h invalid parameters
--------N-172401-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
AX = 2401h
BL = timeout in clock ticks
Return: AL = status (see #0537)
DX:BX -> receive buffer
SeeAlso: AX=2402h,AX=2404h,AX=2408h
--------N-172402-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
AX = 2402h
transmit buffer filled (see AX=2403h)
Return: AL = status (see #0537)
SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
--------N-172403-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
AX = 2403h
Return: AL = status (see #0537)
CX = number of characters in receive ring buffer
DX:BX -> transmit buffer
SeeAlso: AX=2400h,AX=2402h
--------N-172404-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
AX = 2404h
BX = target address
Return: AL = status (see #0537)
SeeAlso: AX=2402h,AX=2405h
--------N-172405-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
AX = 2405h
BX = target address
Return: AL = status (see #0537)
SeeAlso: AX=2402h,AX=2404h
--------N-172406-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
AX = 2406h
Return: AL = status (see #0537)
SeeAlso: AX=2407h,AX=240Ah
--------N-172407-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
AX = 2407h
Return: AL = status (see also #0537)
06h end of data
DL = received character
SeeAlso: AX=2406h
--------N-172408-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
AX = 2408h
Return: AL = status (see also #0537)
06h end of data
CX = number of bytes in receive buffer
DX:SI -> receive buffer
SeeAlso: AX=2401h,AX=2405h,AX=2409h
--------N-172409-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
AX = 2409h
BX = target address
CX = number of data bytes
DL = command code to send
DS:SI -> data bytes for command
Return: AL = status (see also #0537)
03h no response
06h remote currently unable to perform command
SeeAlso: AX=2405h,AX=2408h
--------N-17240A-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
AX = 240Ah
Return: AL = status (see #0537)
SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
--------N-17240B-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
AX = 240Bh
DL = character to send
Return: AL = status (see also AX=2400h)
03h transmission error
06h write error
SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
--------N-17240C-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
AX = 240Ch
Return: AL = status (see also AX=2400h)
03h transmission error
06h remote breaks connection
SeeAlso: AX=240Ah,AX=240Bh
--------J-175000-----------------------------
INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
AX = 5000h
BX = country code
0001h USA (English), 0051h Japan
Return: AL = status
00h successful
01h bad country code
02h other error
SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
--------J-175001-----------------------------
INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
AX = 5001h
Return: AL = status
00h successful
BX = country code
02h error
SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
--------J-1751-------------------------------
INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
AH = 51h
DX = 2-byte JIS code
Return: DX = shift-JIS value or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AX=5000h,AH=52h
--------J-1752-------------------------------
INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
AH = 52h
DX = 2-byte shift-JIS code
Return: DX = JIS code or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AH=51h
--------V-1760-------------------------------
INT 17 - FLASHUP.COM - INSTALLATION CHECK
AH = 60h
Return: AL = 60h
DX = CS of resident code
Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
consisting of an 80h followed by the actual command
SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
--------V-1761-------------------------------
INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
AH = 61h
Return: AL = 61h
DX = CS of resident code
Note: SPEEDSCR.COM is by The Software Bottling Co.
--------P-1762-------------------------------
INT 17 U - T2PS v1.0 - UNINSTALL
AH = 62h
Return: nothing
SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
--------P-1763-------------------------------
INT 17 U - T2PS v1.0 - SET PARAMETERS
AH = 63h
ES:SI -> settings (see #0538)
Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
Technologies
SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
Format of T2PS settings:
Offset Size Description (Table 0538)
00h WORD LPT port number (0=LPT1, etc.)
02h WORD page heigh in points
04h WORD page width in points
06h WORD top margin in points
08h WORD bottom margin in points
0Ah WORD left margin in points
0Ch WORD right margin in points
0Eh WORD font size in points
10h WORD tab size
12h WORD timeout in clock ticks
--------P-1764-------------------------------
INT 17 U - T2PS v1.0 - GET PARAMETERS
AH = 64h
ES:SI -> buffer for settings (see #0538)
Return: ES:SI buffer filled
SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
--------b-176F00BX0000-----------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
--------b-176F02-----------------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
AX = 6F02h
CX = size of buffer in bytes
DX = port number (0-3)
ES:DI -> buffer containing characters to be printed
Return: AH = printer status (see #0528)
CX = number of bytes successfully printed
---on error (AH bit 0 set)---
ES:DI -> next byte to be sent
---if successful---
ES:DI unchanged
SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
--------N-1781-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
AH = 81h
AL = 00h (NTNX compatibility mode)
CL = number of jobs to cancel
Return: AL = status (see #0539)
Note: this function cancels the last CL printouts for the current task
SeeAlso: AH=82h
(Table 0539)
Values for Alloy status:
00h success
01h-7Fh warning
80h general failure
81h host overloaded (NTNX only)
82h module busy (NTNX only)
83h host busy (NTNX only)
84h re-entry flag set
85h invalid request
86h invalid printer
87h invalid process ID
89h access denied
8Ah option not available for given port type
8Bh option not available for given task type
91h printer busy
C2h file not found
C3h path not found
C4h file access failure
--------N-1782-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
AH = 82h
AL = 00h (NTNX compatibility mode)
Return: AL = status (see #0539)
SeeAlso: AH=81h
--------N-1783-------------------------------
INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
AH = 83h
AL = mode
00h NTNX compatibility
CL = number of copies (max 99, default 1)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = number of copies
Return: AL = status (see #0539)
Note: in NTNX compatibility mode, this function only affects LPT1
--------N-1784-------------------------------
INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
AH = 84h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Note: closes spool file and tells spooler to queue the print job (LPT1 only
under MW386 in NTNX compatibility mode)
--------J-1784-------------------------------
INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
AH = 84h
AL = character
DX = printer number
Return: AH = printer status (see #0528)
SeeAlso: AH=00h,AH=85h
--------J-1785-------------------------------
INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
AH = 85h
AL = new state (00h enabled, 01h disabled)
SeeAlso: AH=84h"AX"
--------N-1787-------------------------------
INT 17 - Alloy NTNX - SET INDOS POINTER
AH = 87h
AL = 00h
CX:BX -> buffer for user-written printer drivers
Return: BX,CX destroyed
Note: must be executed before the printer is enabled
SeeAlso: AH=8Ah
--------N-1788-------------------------------
INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
AH = 88h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0540)
01h MW386
DX = MW386 printer number
Return: AH = status (see #0539)
Note: removes specified printer from the spooler's list of printers
SeeAlso: AH=89h,AH=8Bh
(Table 0540)
Values for Alloy NTNX printer number:
00h host LPT1
01h host LPT2
02h host LPT3
03h host LPT4
04h host COM1
05h host COM2
06h user's logical COM2
07h user's terminal AUX port
08h user's logical COM1 (MW386 only)
--------N-1789-------------------------------
INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
AH = 89h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0540)
01h MW386
DX = MW386 printer number
Return: AL = status (see #0539)
Note: the specified printer is added to the spooler's list of available
printers
SeeAlso: AH=88h,AH=8Bh
--------N-178A-------------------------------
INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
AH = 8Ah
???
SeeAlso: AH=92h
--------N-178B-------------------------------
INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
AH = 8Bh
DS:DX -> ASCIZ printer name
Return: AL = status (see also AH=81h)
00h successful
DX = physical device number
SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
--------N-178C-------------------------------
INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
AH = 8Ch
DX = physical device number
ES:DI -> 17-byte buffer for ASCIZ device name
Return: AL = status (see also AH=81h)
00h successful
ES:DI buffer filled
SeeAlso: AH=88h,AH=8Bh
--------N-178D-------------------------------
INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
AH = 8Dh
AL = 00h
Return: AL = status (see #0539)
Notes: clears all buffers and resets spooler to boot-up values
MW386 supports this function for compatibility only; it is a NOP
--------N-178E-------------------------------
INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
AH = 8Eh
AL = 00h
Return: CX:BX -> INT 28 entry point
SeeAlso: AH=8Fh
--------N-178F-------------------------------
INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
AH = 8Fh
AL = 00h
Return: CX:BX -> DOS intercept routine
SeeAlso: AH=8Eh
--------N-1790-------------------------------
INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
AH = 90h
AL = mode
00h NTNX compatibility
DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0539)
Note: in mode 00h, the file is always sent to logical LPT1
SeeAlso: AH=A0h
--------N-1791-------------------------------
INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
AH = 91h
AL = mode
00h NTNX compatibility
Return: CX = user number (00h = host)
DX = currently selected printer number (00h-08h)
01h MW386
Return: CX = user number
DX = physical dev number of currently selected printer
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: CX = user number
DX = physical device number
Return: AL = status (see #0539)
SeeAlso: AH=8Ch
--------N-1792-------------------------------
INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
AH = 92h
AL = 00h
CL = 00h
Return: CL = driver state
01h initialized
80h not initialized
AX = status (see #0539)
SeeAlso: AH=8Ah
--------N-1794-------------------------------
INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
AH = 94h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0540)
01h MW386
DX = MW386 printer number
02h MW386 v2+
BX = logical printer number
DX = MW386 printer number
Return: AL = status (see #0539)
Note: modes 00h and 01h affect only logical LPT1
SeeAlso: AH=8Bh,AH=95h
--------N-1795-------------------------------
INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
AH = 95h
AL = mode
00h NTNX compatibility
Return: DX = NTNX printer number (see #0540)
(FFFFh if current printer not compatible with NTNX)
01h MW386
Return: DX = MW386 printer number
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: DX = MW386 printer number (FFFFh = none)
Return: AL = status (see #0539)
Note: modes 00h and 01h return the printer number of logical LPT1 only
SeeAlso: AH=94h
--------N-1796-------------------------------
INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
AH = 96h
AL = 00h
Note: documentation states that this is a NOP, doing only XOR AX,AX before
returning
SeeAlso: INT 14/AH=24h
--------N-1797-------------------------------
INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
AH = 97h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CH,CL,DH = three character break sequence
DL = subfunction
00h set break string
else reset break
Return: AL = status (see #0539)
Notes: mode 00h affects only logical LPT1
when the break string is encountered, the spool file will be closed and
queued for printing automatically
the break string is not permanently saved, and will be reset each time
MW386 or the user is rebooted
SeeAlso: AH=9Bh
--------N-1798-------------------------------
INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
AH = 98h
AL = 00h
DL = printer number (FFh=current)
Return: AL = status
00h successful
01h incorrect printer
02h task not found
Note: MW386 supports this function for compatibility only; it is a NOP
--------N-1799-------------------------------
INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
AH = 99h
AL = mode
00h NTNX compatibility
DL = NTNX printer number (see #0540)
(FFh = task's current logical LPT1)
DH = mode (see #0541)
01h MW386
DX = MW386 printer number
CL = mode (as for DH above)
Return: AL = status (see #0539)
DH = mode (bits 1 and 2 set as above)
DL = printer owner's user number if not spooled
Bitfields for Alloy printer mode:
0 get mode if 1, set mode if 0 (Table 0541)
1 private ("attached")
2 direct instead of spooled
3-7 reserved (0)
--------N-179A-------------------------------
INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
AH = 9Ah
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0540)
(FFFFh = current logical LPT1)
01h MW386
DX = MW386 printer number
CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
Return: AL = status (see #0539)
Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
rather than a per-user basis; NTNX and MW386 v1.x ignore DX
SeeAlso: AH=A4h
--------N-179B-------------------------------
INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
AH = 9Bh
AL = mode
00h NTNX compatibility
CX = timeout value in clock ticks (1/18 sec) (00h = never)
01h MW386
CX = timeout value in seconds (00h = never)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = timeout value in seconds (00h = never)
Return: AL = status (see #0539)
Notes: modes 00h and 01h affect only the current logical LPT1
if no data is sent to a printer for the specified amount of time, the
spool file will be closed and queued for printing automatically
SeeAlso: AH=97h
--------N-17A0-------------------------------
INT 17 - Alloy MW386 - SPOOL COPY OF FILE
AH = A0h
AL = mode
00h NTNX compatibility
DX = ??? (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0539)
Notes: makes a copy of the specified file in the spooler's directory, allowing
the original file to be modified or deleted while the copy is printed
in mode 00h, the file is printed on logical LPT1
SeeAlso: AH=90h
--------N-17A4-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
AH = A4h
AL = new state
00h form feed after end of print job disabled
01h form feed enabled
Return: AL = status (see #0539)
Note: only affects the current logical LPT1
SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
--------N-17A6-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
AH = A6h
AL = new state
00h banner page before print job disabled
01h banner page enabled
Return: AL = status (see #0539)
Note: only affects the current logical LPT1
SeeAlso: AH=A4h
--------N-17A7-------------------------------
INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
AH = A7h
AL = spool flags (see #0542)
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: AL = status (see #0539)
Note: the documentation does not state which register contains the result of
a GET
SeeAlso: AH=A4h,AH=A6h
Bitfields for Alloy spool flags:
Bit(s) Description (Table 0542)
0 banner page enabled (see AH=A6h)
1 form feed enabled (see AH=A4h)
2-6 reserved (0)
7 set flags if 1, get flags if 0
--------N-17A8-------------------------------
INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
AH = A8h
CX:SI -> ASCIZ filename without extension (max 8 chars)
Return: AL = status (see #0539)
Note: allows application to specify banner page filename for spool files
collected from the application's printer output
SeeAlso: AH=A9h
--------N-17A9-------------------------------
INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
AH = A9h
AL = new spool drive (2=C:,3=D:,etc)
Return: AL = status (see #0539)
Note: does not remove previous spooling directory since jobs may be pending
SeeAlso: AH=A8h
--------N-17AA-------------------------------
INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
AH = AAh
AL = mode
00h NTNX
DX = NTNX printer number (see #0540)
01h MW386
DX = MW386 printer number
Return: AH = instantaneous printer status
00h printer ready
01h not ready
12h off line
13h out of paper
14h general device failure
15h device timeout
16h bad device number
--------N-17AF-------------------------------
INT 17 - Alloy MW386 - CHECK SPOOLER
AH = AFh
Return: AX = 55AAh if spooler available
--------c-17C0-------------------------------
INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
AH = C0h
DX = printer port (0-3)
Return: ES:BX -> control block (see #0543)
SeeAlso: AH=C1h
Format of PCSpool control block:
Offset Size Description (Table 0543)
00h WORD printer number
02h WORD address of printer status port
04h WORD number of first record in queue
06h WORD number of last record in queue
08h DWORD characters already printed
0Ch DWORD number of characters remaining
10h DWORD pointer to dequeue buffer
14h DWORD previous count of characters printed
18h DWORD number of clock ticks taken to print them
1Ch WORD offset of next character to output
1Eh WORD offset of next character to print
20h WORD pointer to spooling queue record
22h BYTE current spooling status
23h BYTE current printer status:
00h OK
01h not ready
02h paused with message
03h paused
04h initializing
FEh non-existent port
FFh not spooled
24h BYTE current control record type
25h WORD observed printer speed
27h WORD characters to print per service
29h BYTE 01h if disk write needed
2Ah BYTE 01h if queued data should be flushed
2Bh BYTE 01h to update cps status
--------c-17C1--------------------------------
INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
AH = C1h
DX = printer port (0-3)
DS:SI -> ASCIZ string to save for display
Note: flushes pending writes
SeeAlso: AH=C0h,AH=C2h
--------c-17C2-------------------------------
INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
AH = C2h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------c-17C3-------------------------------
INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
AH = C3h
DX = printer port (0-3)
SeeAlso: AH=C2h,AH=C7h
--------c-17C4-------------------------------
INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
AH = C4h
Return: DI = B0BFh
SI = segment
--------c-17C5-------------------------------
INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
AH = C5h
DX = printer port (0-3)
Note: cancels up to the pause record
--------c-17C6-------------------------------
INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
AH = C6h
DX = printer port (0-3)
Return: AX = queue status
0000h printer not active or at pause
0001h printer busy
--------c-17C7-------------------------------
INT 17 - PC Magazine PCSpool - CLOSE QUEUE
AH = C7h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------P-17CD00-----------------------------
INT 17 - INSET - EXECUTE COMMAND STRING
AX = CD00h
DS:DX -> ASCIZ command string (max 80 bytes)
Return: CX = 07C2h (1986d)
Note: user interface menus pop up after last command, unless that command
exits INSET
--------P-17CD01-----------------------------
INT 17 - INSET - GET IMAGE SIZE
AX = CD01h
DS:DX -> ASCIZ name of image file
Return: AX = height in 1/720th inch
BX = width in 1/720th inch
CX = 07C2h (1986d)
--------P-17CD02-----------------------------
INT 17 - INSET - INITIALIZE
AX = CD02h
Return: CX = 07C2h (1986d)
Note: all open files are closed and the printer is reset
SeeAlso: AX=CD04h
--------P-17CD03-----------------------------
INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
AX = CD03h
Return: CX = 07C2h (1986d)
--------P-17CD04-----------------------------
INT 17 - INSET - INITIALIZE LINKED MODE
AX = CD04h
ES:SI -> FAR routine for linked mode (see #0544)
Return: CX = 07C2h
SeeAlso: AX=CD02h,AX=CD08h
(Table 0544)
Values INSET linked-mode routine is called with:
AL = function
00h send character to printer
BL = character to send
01h send string to printer
CX = number of bytes to send
DS:DX -> buffer containing data
02h move print head to horizontal starting position of image
Return: AX = status
0000h success
0001h failure
--------P-17CD05-----------------------------
INT 17 - INSET - START MERGING IMAGE INTO TEXT
AX = CD05h
DS:DX -> ASCIZ name of PIX file
CX = left margin of text in 1/720th inch
Return: AH = printer type
00h page-oriented (multiple images may be placed side-by-side)
01h line-oriented (use AX=CD06h for vertical paper movement)
CX = 07C2h (1986d)
SeeAlso: AX=CD07h
--------P-17CD06-----------------------------
INT 17 - INSET - GRAPHICS LINE FEED
AX = CD06h
Return: AH = completion status
00h image complete
01h image incomplete
CX = 07C2h (1986d)
SeeAlso: AX=CD09h
--------P-17CD07-----------------------------
INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
AX = CD07h
Return: CX = 07C2h
SeeAlso: AX=CD05h
--------P-17CD08-----------------------------
INT 17 - INSET - CANCEL LINK MODE
AX = CD08h
Return: CX = 07C2h
SeeAlso: AX=CD04h
--------P-17CD09-----------------------------
INT 17 - INSET - ALTER TEXT LINE SPACING
AX = CD09h
CX = line spacing in 1/720th inch
Return: CX = 07C2h
Note: not yet implemented, line spacing is currently fixed at 1/6 inch
SeeAlso: AX=CD06h
--------P-17CD0A-----------------------------
INT 17 - INSET - GET SETUP
AX = CD0Ah
DS:DX -> buffer for IN.SET data
Return: CX = 07C2h
--------P-17CD0B-----------------------------
INT 17 - INSET - START GETTING SCALED IMAGE
AX = CD0Bh
DS:SI -> ASCIZ pathname of .PIX file
BX = number of bitplanes
CX = number of rows in output bitmap
DX = number of columns in output bitmap
Return: AX = status
0000h OK
FFFFh error
Note: image is returned in strips by repeated calls to AX=CD0Ch
--------P-17CD0C-----------------------------
INT 17 - INSET - GET NEXT IMAGE STRIP
AX = CD0Ch
Return: AX = status
0000h OK but not complete
0001h OK and image complete
FFFFh error
DS:SI -> buffer (max 4K) for bit map strip
CX = start row
DX = number of rows
BX = offset in bytes between bit planes
Note: buffer may be overwritten by subsequent calls
SeeAlso: AX=CD0Bh
--------P-17E0-------------------------------
INT 17 - EPP BIOS - INSTALLATION CHECK
AH = E0h
Return: ??? (AH <> E0h if installed ???)
SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
--------P-17E1-------------------------------
INT 17 - EPP BIOS - DISABLE EPP
AH = E1h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
--------P-17E2-------------------------------
INT 17 - EPP BIOS - ENABLE EPP
AH = E2h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
--------P-17F0-------------------------------
INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
AH = F0h
DX = printer port (0-3)
Return: AX = 0001h Jetstream present
else non-Jetstream port
Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
to drive printers at up to 80000 characters per second
--------P-17F1-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
AH = F1h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
--------P-17F2-------------------------------
INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
AH = F2h
DX = printer port (0-3)
Return: AX = status
0000h prior print request finished
other number of characters left to print
SeeAlso: AH=02h,AH=F1h,AH=F3h
--------P-17F3-------------------------------
INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
AH = F3h
DX = printer port (0-3)
Return: AX = number of unprinted characters due to abort
SeeAlso: AH=F1h,AH=F4h
--------P-17F4-------------------------------
INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
AH = F4h
DX = printer port (0-3)
DS:DS -> FAR post address (called with interrupts on)
SeeAlso: AH=F1h,AH=F3h
--------P-17F5-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
AH = F5h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer (32-bit physical address)
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=F1h
--------c-17FF--BX0000-----------------------
INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
AH = FFh
BX = 0000h
CX = 0000h
DX = printer port number
Return: AH = printer status (see #0528 at AH=00h)
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
Desc: close the spool file immediately instead of waiting for the close time
to elapse
SeeAlso: AH=01h,AH=03h"PC-MOS"
--------B-18---------------------------------
INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
Desc: called when there is no bootable disk available to the system
Notes: only PCs produced by IBM contain BASIC in ROM, so the action is
unpredictable on compatibles; this interrupt often reboots the
system, and often has no effect at all
network cards with their own BIOS can hook this interrupt to allow
a diskless boot off the network (even when a hard disk is present
if none of the partitions is marked as the boot partition)
SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
--------J-1800-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
AH = 00h
Return: AX = keystroke
SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
--------J-1801-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
AH = 01h
Return: BH = status
00h no keystrokes available
01h keystroke available
AX = keystroke
SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
--------J-1802-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
AH = 02h
Return: AL = shift flags
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
--------J-1803-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
AH = 03h
???
Return: ???
SeeAlso: AH=00h,AH=04h
--------J-1804-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
AH = 04h
???
Return: ???
Note: details are not available at this time
SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
--------J-18---------------------------------
INT 18 - NEC PC-9800 series - VIDEO
AH = function
0Ah set video mode
0Bh get video mode
0Ch start text screen display
0Dh end text screen display
0Eh set single display area
0Fh set multiple display area
10h set cursor shape
11h display cursor
12h terminate cursor
13h set cursor position
14h read font patter
16h initialize text video RAM
1Ah define user character
others
???
Return: ???
Notes: details are not available at this time
text video RAM is located at segments A000h (characters) and A200h
(attributes), graphics video RAM at segment C000h
Bitfields for NEC PC-9800 series video attributes:
Bit(s) Description (Table 0545)
0 disable drawing character
1 blinking
2 reverse video
3 underline
4 vertical line
7-5 color
(0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)
--------J-180E-------------------------------
INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
AH = 0Eh
DX = offset of first byte to display???
Return: ???
SeeAlso: AH=1Bh,MEM 0050h:0001h
--------J-181B-------------------------------
INT 18 - NEC PC-9800 series - SET DISPLAY MODE
AH = 1Bh
AL = ??? (00h for text mode)
Return: ???
--------r-185350BX4849-----------------------
INT 18 - SPHINX C-- - WB.COM - API
AX = 5350h ('SP')
BX = 4849h ('HI')
CX = 4E58h ('NX')
DH = function
01h set ???
DL = ???
02h get ???
Return: DL = ???
03h get ???
Return: ES:DI -> ??? data buffer
06h ???
Return: AX = 7370h ('sp') if installed
BX = 6869h ('hi') if installed
CX = 6E78h ('nx') if installed
Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
which is a cross between C and assembler; WB.COM is the driver which
launches the WorkBench
--------s-186900-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
AX = 6900h
Return: AX = amount of DRAM on card or 0000h if GUS not available
Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
and then shells out the the program requiring its services
SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
--------s-186901-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
AX = 6901h
BX = number of active voices (14-32)
Return: nothing
SeeAlso: AX=6900h
--------s-186902-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
AX = 6902h
BX = voice number (00h-1Fh)
CX = linear volume (0000h-01FFh)
Return: nothing
SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
--------s-186903-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
AX = 6903h
BX = voice number (00h-1Fh)
CX = frequency in Hz (0-44100)
Return: nothing
SeeAlso: AX=6902h,AX=6904h
--------s-186904-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
AX = 6904h
BX = voice number (00h-1Fh)
CX = balance (0 = left, 7 = even, 15 = right)
Return: nothing
SeeAlso: AX=6902h,AX=6903h
--------s-186905-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
AX = 6905h
BL = voice number
BH = sample type (0 = 8-bit, 1 = 16-bit)
CL = looping type (0 = none, 1 = forward, 2 = back and forth)
CH:DI = 20-bit starting address for voice data
DL:SI = 20-bit address for loop start
DH:BP = 20-bit address for loop end
SeeAlso: AX=6903h,AX=6906h,AX=690Bh
--------s-186906-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
AX = 6906h
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to send
ES:SI -> buffer containing data
DL:DI = 20-bit address of GUS DRAM at which to load sound data
SeeAlso: AX=6900h,AX=6905h,AX=690Ch
--------s-186907-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
AX = 6907h
BX = voice number (00h-1Fh)
Return: nothing
SeeAlso: AX=6908h,AX=690Dh
--------s-186908-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
AX = 6908h
BX = voice number (00h-1Fh)
CL:DX = 20-bit ending address
Return: nothing
SeeAlso: AX=690Bh
--------s-186909-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
AX = 6909h
BL = voice number (00h-1Fh)
BH = looping type (0 = none, 1 = forward, 2 = back and forth)
CX = starting volume
DX = ending volume
DI:SI = time
Return: nothing
SeeAlso: AX=6902h,AX=690Ah
--------s-18690A-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
AX = 690Ah
BX = voice number (00h-1Fh)
Return: AX = current non-linear volume for voice
SeeAlso: AX=6902h,AX=6909h
--------s-18690B-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
AX = 690Bh
BX = voice number
Return: BX:AX = 20-bit address at which voice is playing
SeeAlso: AX=6900h,AX=6905h,AX=6908h
--------s-18690C-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
AX = 690Ch
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to get
ES:SI -> buffer for retrieved data
DL:DI = 20-bit address in GUS DRAM from which to read voice data
Return: nothing
SeeAlso: AX=6906h
--------s-18690D-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
AX = 690Dh
BX = voice
CX = sample type (0 = 8-bit, 1 = 16-bit)
DX = looping type (0 = none, 1 = forward, 2 = back and forth)
Return: CX = balance value
SeeAlso: AX=6907h,AX=6908h
--------s-188000-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
AX = 8000h
Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
INT 18h and then shells out to the program requiring its services
SeeAlso: AX=8001h,AX=8004h
--------s-188001-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
AX = 8001h
BX:CX -> ASCIZ filename
SeeAlso: AX=8000h,AX=8002h
--------s-188002-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
AX = 8002h
SeeAlso: AX=8002h,AX=8003h
--------s-188003-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
AX = 8003h
--------s-188004-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
AX = 8004h
SeeAlso: AX=8000h,AX=8003h
--------B-19---------------------------------
INT 19 - SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring
interrupt vectors. Because interrupt vectors are preserved, this
interrupt usually causes a system hang if any TSRs have hooked
vectors from 00h through 1Ch, particularly INT 08.
Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table (see #0547). After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control. It will
scan the partition table for an active partition, and will then load
the operating system's bootstrap loader (contained in the first
sector of the active partition) and give it control.
true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector
to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping.
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs (see #0546). DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use.
the default handler is at F000h:E6F2h for 100% compatible BIOSes
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions
under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
BUG: when loading the remainder of the DOS system files fails, various
versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
calling INT 19, assuming that the boot sector had stored the
contents of INT 1E at DS:SI instead of on the stack as it actually
does
SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
Format of VDISK header block (at beginning of INT 19 handler's segment):
Offset Size Description (Table 0546)
00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
1Dh 15 BYTEs n/a
2Ch 3 BYTEs linear address of first byte of available extended memory
Format of hard disk master boot sector:
Offset Size Description (Table 0547)
00h 446 BYTEs Master bootstrap loader code
1BEh 16 BYTEs partition record for partition 1 (see #0548)
1CEh 16 BYTEs partition record for partition 2
1DEh 16 BYTEs partition record for partition 3
1EEh 16 BYTEs partition record for partition 4
1FEh WORD signature, AA55h indicates valid boot block
Format of partition record:
Offset Size Description (Table 0548)
00h BYTE boot indicator (80h = active partition)
01h BYTE partition start head
02h BYTE partition start sector (bits 0-5)
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
04h BYTE operating system indicator (see #0549)
05h BYTE partition end head
06h BYTE partition end sector (bits 0-5)
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
08h DWORD sectors preceding partition
0Ch DWORD length of partition in sectors
SeeAlso: #0547
(Table 0549)
Values for operating system indicator:
00h empty
01h DOS 12-bit FAT
02h XENIX root file system
03h XENIX /usr file system (obsolete)
04h DOS 16-bit FAT (up to 32M)
05h DOS 3.3+ extended partition
06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
07h QNX
07h OS/2 HPFS
07h Windows NT NTFS
07h Advanced Unix
08h OS/2 (v1.0-1.3 only)
08h AIX bootable partition, SplitDrive
08h Commodore DOS
08h DELL partition spanning multiple drives
09h AIX data partition
09h Coherent filesystem
0Ah OS/2 Boot Manager
0Ah OPUS
0Ah Coherent swap partition
0Bh Windows 95 with 32-bit FAT
0Ch Windows 95 with 32-bit FAT (using LBA-mode INT 13 extensions)
0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
10h OPUS
11h OS/2 Boot Manager hidden 12-bit FAT partition
12h Compaq Diagnostics partition
14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
17h OS/2 Boot Manager hidden HPFS partition
18h AST special Windows swap file
21h officially listed as reserved
23h officially listed as reserved
24h NEC MS-DOS 3.x
26h officially listed as reserved
31h officially listed as reserved
33h officially listed as reserved
34h officially listed as reserved
36h officially listed as reserved
38h Theos
3Ch PowerQuest PartitionMagic recovery partition
40h VENIX 80286
41h Personal RISC Boot
42h SFS (Secure File System) by Peter Gutmann
50h OnTrack Disk Manager, read-only partition
51h OnTrack Disk Manager, read/write partition
51h NOVEL
52h CP/M
52h Microport System V/386
53h OnTrack Disk Manager, write-only partition???
54h OnTrack Disk Manager (DDO)
56h GoldenBow VFeature
61h SpeedStor
63h Unix SysV/386, 386/ix
63h Mach, MtXinu BSD 4.3 on Mach
63h GNU HURD
64h Novell NetWare 286
65h Novell NetWare (3.11)
67h Novell
68h Novell
69h Novell
70h DiskSecure Multi-Boot
71h officially listed as reserved
73h officially listed as reserved
74h officially listed as reserved
75h PC/IX
76h officially listed as reserved
80h Minix v1.1 - 1.4a
81h Minix v1.4b+
81h Linux
81h Mitac Advanced Disk Manager
82h Linux Swap partition
82h Prime
83h Linux native file system (ext2fs/xiafs)
84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
86h officially listed as reserved
87h HPFS Fault-Tolerant mirrored partition
93h Amoeba file system
94h Amoeba bad block table
A1h officially listed as reserved
A3h officially listed as reserved
A4h officially listed as reserved
A5h FreeBSD, BSD/386
A6h officially listed as reserved
B1h officially listed as reserved
B3h officially listed as reserved
B4h officially listed as reserved
B6h officially listed as reserved
B7h BSDI file system (secondarily swap)
B8h BSDI swap partition (secondarily file system)
C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition
C7h Syrinx Boot
D8h CP/M-86
DBh CP/M, Concurrent CP/M, Concurrent DOS
DBh CTOS (Convergent Technologies OS)
E1h SpeedStor 12-bit FAT extended partition
E3h DOS read-only
E3h Storage Dimensions
E4h SpeedStor 16-bit FAT extended partition
E5h officially listed as reserved
E6h officially listed as reserved
F1h Storage Dimensions
F2h DOS 3.3+ secondary partition
F3h officially listed as reserved
F4h SpeedStor
F4h Storage Dimensions
F6h officially listed as reserved
FEh LANstep
FEh IBM PS/2 IML
FFh Xenix bad block table
Note: for partition type 07h, one should inspect the partition boot record
for the actual file system type
SeeAlso: #0548
--------B-1A00-------------------------------
INT 1A - TIME - GET SYSTEM TIME
AH = 00h
Return: CX:DX = number of clock ticks since midnight
AL = midnight flag, nonzero if midnight passed since time last read
Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
(except on Tandy 2000, where the clock runs at 20 ticks per second)
IBM and many clone BIOSes set the flag for AL rather than incrementing
it, leading to loss of a day if two consecutive midnights pass
without a request for the time (e.g. if the system is on but idle)
since the midnight flag is cleared, if an application calls this
function after midnight before DOS does, DOS will not receive the
midnight flag and will fail to advance the date
SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI"
SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch
--------B-1A01-------------------------------
INT 1A - TIME - SET SYSTEM TIME
AH = 01h
CX:DX = number of clock ticks since midnight
Return: nothing
Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
(except on Tandy 2000, where the clock runs at 20 ticks per second)
this call resets the midnight-passed flag
SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
--------B-1A02-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 02h
Return: CF clear if successful
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
CF set on error (i.e. clock not running or in middle of update)
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is returned in binary rather than BCD on the Sperry,
and DL is always 00h
SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch
--------b-1A02-------------------------------
INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
AH = 02h
Return: BX = number of days since January 1, 1980
CH = hours
CL = minutes
DH = seconds
DL = hundredths
SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"
--------B-1A03-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 03h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
Return: nothing
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is specified in binary rather than BCD on the
Sperry, and the value of DL is ignored
SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h
--------b-1A03-------------------------------
INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
AH = 03h
BX = number of days since January 1, 1980
CH = hours
CL = minutes
DH = seconds
DL = hundredths
Return: nothing
SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"
--------B-1A04-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 04h
Return: CF clear if successful
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
CF set on error
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"
--------b-1A04-------------------------------
INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
AH = 04h
Return: CF clear if successful
CL = year-1980
DH = month (binary) (01h-0Ch)
DL = day (binary) (01h-1Fh)
CF set on error
SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"
--------B-1A05-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 05h
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
Return: nothing
SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"
--------b-1A05-------------------------------
INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
AH = 05h
CL = year-1980
CH = 00h (???)
DH = month (binary) (01h-0Ch)
DL = day (binary) (01h-1Fh)
Return: nothing
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"
--------B-1A06-------------------------------
INT 1A - TIME - SET ALARM (AT,XT286,PS)
AH = 06h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
Return: CF set on error (alarm already set or clock stopped for update)
CF clear if successful
Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each
time
the BIOS does not check for invalid values for the time, so the CMOS
clock chip's "don't care" setting (any values between C0h and FFh)
may be used for any or all three parts. For example, to create an
alarm once a minute, every minute, call with CH=FFh, CL=FFh, and
DH=00h.
SeeAlso: AH=07h,INT 4A"SYSTEM"
--------B-1A07-------------------------------
INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
AH = 07h
Return: alarm disabled
Note: does not disable the real-time clock's IRQ
SeeAlso: AH=06h,INT 70
--------B-1A08-------------------------------
INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
AH = 08h
CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
SeeAlso: AH=09h
--------B-1A09-------------------------------
INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
AH = 09h
Return: CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
DL = alarm status
00h alarm not enabled
01h alarm enabled but will not power up system
02h alarm will power up system
SeeAlso: AH=08h
--------B-1A0A-------------------------------
INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Ah
Return: CF set on error
CF clear if successful
CX = count of days since Jan 1,1980
SeeAlso: AH=04h,AH=0Bh
--------B-1A0B-------------------------------
INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Bh
CX = count of days since Jan 1,1980
Return: CF set on error
CF clear if successful
SeeAlso: AH=05h,AH=0Ah
--------J-1A10-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
AH = 10h
???
Return: ???
SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
--------J-1A1000-----------------------------
INT 1A - NEC PC-9800 series - INSTALLATION CHECK
AX = 1000h
Return: AX <> 1000h if NEC
--------J-1A11-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
AH = 11h
???
Return: ???
SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
--------J-1A12-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
AH = 12h
???
Return: ???
SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
--------A-1A3601-----------------------------
INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
AX = 3601h
Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
ASCIZ string "WPCORP\0"
Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a
third party product wants to interface with it. The third party
product must intercept this interrupt and return the address of a
keyboard monitor routine.
Before checking for keyboard input, and after every key entered by the
user, Word Perfect will call the routine whose address was provided
in DS:SI with the following parameters:
Entry: AX = key code or 0
BX = WordPerfect state flag
Exit: AX = 0 or key code
BX = 0 or segment address of buffer with key codes
See the "WordPerfect 5.0 Developer's Toolkit" for further information.
SeeAlso: INT 16/AX=5500h
--------N-1A6108-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
AX = 6108h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message buffer
WORD length of message
DWORD pointer to reply buffer
WORD length of reply buffer
WORD 0000h (use default "Cparams" structure)
Return: AX = status (see #0550)
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6205h
(Table 0550)
Values for SNAP.EXE status:
0000h successful
F830h "SNAP_ABORTED"
FC04h "SNAP_SERVERDIED"
FC05h "SNAP_RESEND"
FC06h "SNAP_SELECTFAILED"
FC07h "SNAP_WRONGVERSION"
FC08h "SNAP_INVALIDACK"
FC09h "SNAP_TIMEOUT"
FC0Ah "SNAP_SERVERREJECT"
FC0Bh "SNAP_NOREPLYDUE"
FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
FC0Dh "SNAP_NOINIT"
FC0Eh "SNAP_SOCKETERROR"
FC0Fh "SNAP_BUFFERLIMIT"
FC10h "SNAP_INVALIDCID"
FC11h "SNAP_INVALIDOP"
FC12h "SNAP_XMITFAIL"
FC13h "SNAP_NOMORERETRIES"
FC14h "SNAP_BADPARMS"
FC15h "SNAP_NOMEMORY"
FC16h "SNAP_NOMORECONVS"
FFFFh failed (invalid function/parameter)
--------N-1A6205-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
AX = 6205h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message
WORD length of message
WORD 0000h (use default "Cparms" structure)
Return: AX = status (see #0550)
STACK unchanged
SeeAlso: AX=6108h
--------N-1A6308-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
AX = 6308h
STACK: WORD offset of ASCIZ "guardian"
WORD offset of ASCIZ hostname
WORD offset of ASCIZ server name
WORD offset of ASCIZ userid
WORD offset of ASCIZ password
WORD offset of password length
WORD offset of password type
WORD offset of "Cparms" structure (see #0551)
Return: ???
STACK unchanged
Note: all stacked offsets are within the SNAP data segment (use AX=6A01h
to allocate a buffer)
SeeAlso: AX=6405h,AX=7202h
Format of SNAP.EXE Cparms structure:
Offset Size Description (Table 0551)
00h WORD retry delay in seconds
02h WORD timeout delay in seconds
04h WORD maximum buffer size
06h WORD encryption level
--------N-1A6405-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
AX = 6405h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message buffer
WORD length of message
WORD 0000h (use default "Cparms" structure)
Return: AX = status (see #0550)
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6308h
--------N-1A6900-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
AX = 6900h
Return: AX = value used for DS by resident code
SeeAlso: AX=6A01h,AX=6F01h
--------N-1A6A01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
AX = 6A01h
STACK: WORD number of bytes to allocate
Return: AX = offset of allocated buffer or 0000h if out of memory
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6B01h
--------N-1A6B01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
AX = 6B01h
STACK: WORD offset within SNAP data segment of previously allocated
buffer
Return: STACK unchanged
Note: this call is a NOP if the specified offset is 0000h
SeeAlso: AX=6A01h
--------N-1A6C04-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
AX = 6C04h
STACK: WORD offset within SNAP data segment of dest (nonzero)
WORD segment of source buffer
WORD offset of source buffer
WORD number of bytes to copy
Return: AX = offset of byte after last one copied to destination
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6D04h
--------N-1A6D04-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
AX = 6D04h
STACK: WORD offset within SNAP data segment of source buffer
WORD segment of destination buffer
WORD offset of destination buffer
WORD number of bytes to copy
Return: AX = offset of byte after last one copied from source
buffer filled
STACK unchanged
SeeAlso: AX=6C04h
--------N-1A6E01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
AX = 6E01h
STACK: WORD new value for ???
Return: AX = old value of ???
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------N-1A6F01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
AX = 6F01h
STACK: WORD 0000h
Return: AX = status
0000h SNAP is resident
other SNAP not present
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol, and is
required by PCVENUS (a network shell). The combination of SNAP and
PCVENUS allows the use of the Andrew File System as one or more
networked drives.
SeeAlso: AX=6900h,AX=7400h
--------N-1A7002-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
AX = 7002h
STACK: WORD anchor number (0000h-0009h)
WORD new value for the anchor
Return: AX = status
0000h successful
FFFFh failed (top word on stack not in range 00h-09h)
STACK unchanged
SeeAlso: AX=7101h
--------N-1A7101-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
AX = 7101h
STACK: WORD anchor number (0000h-0009h)
Return: AX = anchor's value
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=7002h
--------N-1A7202-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
AX = 7202h
STACK: WORD conversation ID (0000h-0009h)
WORD offset within resident data segment of "Cparms"
structure (see #0551)
Return: AX = status???
STACK unchanged
SeeAlso: AX=6308h
--------N-1A7302-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
AX = 7302h
STACK: WORD conversation ID (0000h-0009h)
WORD offset within resident data segment of ???
Return: AX = ???
???
STACK unchanged
SeeAlso: AX=7400h
--------N-1A7400-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
AX = 7400h
Return: AX = version (AH=major, AL=minor)
Note: this call is only valid if SNAP is installed
SeeAlso: AX=7302h,INT 1A/AX=6F01h
--------N-1A75-------------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
AH = 75h
AL = ???
Return: AX = ??? (0000h)
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------N-1A76-------------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
AH = 76h
AL = ???
Return: AX = ???
--------N-1A77-------------------------------
INT 1A - SNAP.EXE 3.4 - ???
AH = 77h
AL = ??? (at least 01h)
STACK: WORD ???
???
Return: ???
STACK unchanged
--------N-1A7802-----------------------------
INT 1A - SNAP.EXE 3.4 - ???
AX = 7802h
STACK: WORD ???
WORD ???
Return: ???
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------s-1A7F-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
AH = 7Fh
???
Return: ???
Note: this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=80h,AH=83h,AH=85h
--------s-1A80-------------------------------
INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
AH = 80h
AL = 00h source is 8253 channel 2
01h source is cassette input
02h source is I/O channel "Audio IN"
03h source is sound generator chip
Note: although documented in the 1000TL Technical Reference, the 1000TL
BIOS has just an IRET for this call
SeeAlso: AH=7Fh,AH=83h
--------X-1A80-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
AH = 80h
Return: CF clear if successful
CX = 5353h ('SS') if Socket Services installed
AL = number of adapters present (0-16)
AH destroyed
CF set on error
AH = error code (see #0552)
SeeAlso: AH=83h"PCMCIA"
(Table 0552)
Values for PCMCIA error codes:
01h "BAD_ADAPTER" nonexistent adapter
02h "BAD_ATTRIBUTE" invalid attribute specified
03h "BAD_BASE" invalid system memory base address
04h "BAD_EDC" invalid EDC generator specified
05h "BAD_INDICATOR" invalid indicator specified
06h "BAD_IRQ" invalid IRQ channel specified
07h "BAD_OFFSET" invalid PCMCIA card offset specified
08h "BAD_PAGE" invalid page specified
09h "BAD_READ" unable to complete request
0Ah "BAD_SIZE" invalid window size specified
0Bh "BAD_SOCKET" nonexistent socket specified
0Ch "BAD_TECHNOLOGY" unsupported Card Technology for writes
0Dh "BAD_TYPE" unavailable window type specified
0Eh "BAD_VCC" invalid Vcc power level index specified
0Fh "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
10h "BAD_WAIT" invalid number of wait states specified
11h "BAD_WINDOW" nonexistent window specified
12h "BAD_WRITE" unable to complete request
13h "NO_ADAPTERS" no adapters installed, but Socket Services is present
14h "NO_CARD" no card in socket
15h function not supported
16h invalid mode
17h invalid speed
18h busy
--------X-1A81-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
AH = 81h
DS:DX -> callback routine (see #0553) or 0000h:0000h to disable
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0552)
Note: the callback will be invoked on any socket changes whose notification
has not been disabled with the status change enable mask; it may be
invoked either while processing a hardware interrupt from the adapter
or while processing the following Socket Services request
SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
(Table 0553)
Values PCMCIA callback routine is invoked with:
AL = adapter number
BH = status change interrupt enable mask (see #0554)
BL = socket number
DH = current socket status (see #0555)
DL = current card status (see #0556)
Return: all registers preserved
Notes: the callback may be invoked during a hardware interrupt, and may not
call on Socket Services
the callback will be invoked once for each socket with a status change
Bitfields for PCMCIA status change interrupt enable mask:
Bit(s) Description (Table 0554)
7 card detect change
6 ready change
5 battery warning change
4 battery dead change
3 insertion request
2 ejection request
1-0 reserved (0)
Bitfields for PCMCIA current socket status:
Bit(s) Description (Table 0555)
7 card changed
6 reserved (0)
5 card insertion complete
4 card ejection complete
3 card insertion request pending
2 card ejection request pending
1 card locked
0 reserved (0)
Bitfields for PCMCIA current card status:
Bit(s) Description (Table 0556)
7 card detect
6 ready
5 battery voltage detect 2 (battery warning)
4 battery voltage detect 1 (battery dead)
3-1 reserved (0)
0 write protected
--------s-1A8100-----------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
AX = 8100h
Return: AL > 80h if supported
AX = 00C4h if supported (1000SL/TL)
CF set if sound chip is busy
CF clear if sound chip is free
Note: the value of CF is not definitive; call this function until CF is
clear on return, then call AH=84h"Tandy"
--------s-1A82-------------------------------
INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
AH = 82h
ES:BX -> buffer for sound samples
CX = length of buffer
DX = transfer rate (1-4095, 1 is fastest)
Return: AH = 00h
CF set if sound busy
CF clear if sound chip free
Note: the value in DX should be 1/10 the corresponding value for
INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL. Call
INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
The BIOS issues an INT 15/AX=91FBh when the input is complete
DMA across a 64K boundary is masked by the BIOS
--------X-1A82-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
AH = 82h
DS:DX -> callback routine (see #0557) or 0000h:0000h
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0552)
Note: the callback is invoked on a Write Multiple request with an unsupported
card technology type
SeeAlso: AH=81h"PCMCIA",AH=94h
(Table 0557)
Values PCMCIA callback routine is invoked with:
ES:AX -> Low-Level Socket Services Routines (see #0559)
BH = socket attributes (see #0558)
CX = number of bytes or words to write
DS:SI -> data buffer to be written
DX:DI -> 26-bit linear card address
BP = card technology type
Return: CF clear if successful
CF set on error
AH = error code (07h,0Ch,12h,14h) (see #0552)
Bitfields for PCMCIA socket attributes:
Bit(s) Description (Table 0558)
7-4 reserved (0)
3 packed buffer
2 even bytes only (only valid if 1 set)
1 data width (clear = byte, set = word)
0 memory type (clear = common, set = attribute)
Format of PCMCIA Low-Level Socket Services Routines:
Offset Size Description (Table 0559)
00h WORD offset of Write Many routine (see #0560)
02h WORD offset of Write One routine (see #0561)
04h WORD offset of Read One routine (see #0562)
06h WORD offset of Increment Offset routine (see #0563)
08h WORD offset of Set Offset routine (see #0564)
0Ah WORD offset of Get Status routine (see #0565)
(Table 0560)
Call Write Many routine with:
BH = socket attributes (see #0558)
CX = number of bytes or words to write
DS:SI -> data to be written
Return: CF clear if successful
CF set on error
(Table 0561)
Call Write One routine with:
AL/AX = data to be written
BH = socket attributes (see #0558)
Return: CF clear if successful
CF set on error
(Table 0562)
Call Read One routine with:
BH = socket attributes (see #0558)
Return: CF clear if successful
AL/AX = data read
CF set on error
(Table 0563)
Call Increment Offset routine with:
BH = socket attributes (see #0558)
Return: CF clear if successful
CF set on error
(Table 0564)
Call Set Offset routine with:
DX:DI = new offset address
Return: CF clear if successful
CF set on error
(Table 0565)
Call Get Status routine with:
nothing
Return: AL = current card status (see #0556)
--------s-1A83-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
AH = 83h
AL = volume (0=silence, 7=highest)
CX = number of bytes to play
DX = time between sound samples (multiples of 273 nanoseconds)
only bits 11-0 used
ES:BX -> sound data (array of 8-bit unsigned PCM samples)
Return: AH = 00h
CF set if sound is busy
CF clear if sound chip is free
Notes: this call returns immediately while the sound plays in the
background; the sound chip is clocked at 3.57 MHz, with the low 12
bits of DX specifying the clock divisor
The BIOS appears to call INT 15/AX=91FBh when the sound device
underflows to allow another INT 1A/AH=83h for seamless playing of
long sounds.
SeeAlso: AH=84h"Tandy",INT 15/AH=91h
--------X-1A83-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
AH = 83h
AL = adapter number
Return: CF clear if successful
AX = Socket Services version (BCD)
BX = implementation version (BCD)
CX = 5353h ("SS")
DS:SI -> ASCIZ implementor description
CF set on error
AH = error code (01h) (see #0552)
Note: the current version (from the Revision A.00 documentation) of Socket
Services is 1.00 (AX=0100h)
SeeAlso: AH=80h"PCMCIA"
--------s-1A84-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
AH = 84h
Return: ???
Note: the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
--------X-1A84-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
AH = 84h
AL = adapter number
Return: CF clear if successful
AH destroyed
BH = number of windows
BL = number of sockets (1-16)
CX = number of EDCs
DH = capabilities (see #0566)
DL = status change interrupt used (only if DH bit 3 set)(see #0567)
CF set on error
AH = error code (01h) (see #0552)
SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
Bitfields for PCMCIA capabilities:
Bit(s) Description (Table 0566)
7-6 reserved (0)
5 status change interrupt is hardware shareable
4 status change interrupt is software shareable
3 status change interrupt
2 data bus width is per-socket rather than per-window
1 power management is per-adapter rather than per-socket
0 indicators are per-adapter rather than per-socket
(Table 0567)
Values for PCMCIA status change interrupt usage:
00h-0Fh IRQ level
10h NMI
11h I/O check
12h bus error
13h vendor specific
14h-FFh reserved
--------s-1A85-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
AH = 85h
???
Return: ???
Note: this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=7Fh,AH=83h"Tandy"
--------X-1A85-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
AH = 85h
AL = adapter number
Return: CF clear if successful
AH destroyed
DH = adapter attributes (see #0568)
CF set on error
AH = error code (01h) (see #0552)
SeeAlso: AH=84h"PCMCIA",AH=86h
Bitfields for PCMCIA adapter attributes:
Bit(s) Description (Table 0568)
7-5 reserved (0)
4 hardware share status change
3 software share status change
2 enable status change interrupts
1 adapter preserves state information during reduced power consumption
0 attempting to reduce power consumption
--------X-1A86-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
AH = 86h
AL = adapter number
DH = new adapter attributes (see #0568)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h) (see #0552)
SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
--------X-1A87-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
AH = 87h
AL = adapter number
BH = window number
Return: CF clear if successful
AH destroyed
BL = capabilities (see #0569)
CX = bitmap of assignable sockets
DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
DL = supported access speeds (see #0570)
DS:SI -> Memory Window Characteristics table (see #0571)
DS:DI -> I/O Window Characteristics table (see #0572)
CF set on error
AH = error code (01h,11h) (see #0552)
SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
Bitfields for PCMCIA window capabilities:
Bit(s) Description (Table 0569)
7-5 reserved (0)
4 separate enable for EISA comon space
3 EISA I/O mappable
2 I/O space
1 attribute memory
0 common memory
Bitfields for PCMCIA supported access speeds:
Bit(s) Description (Table 0570)
7 reserved (0)
6 600 ns
5 300 ns
4 250 ns
3 200 ns
2 150 ns
1 100 ns
0 WAIT line monitoring
Format of PCMCIA Memory Window Characteristics table:
Offset Size Description (Table 0571)
00h WORD window capabilities (see #0573)
02h WORD minimum base address in 4K pages
04h WORD maximum base address in 4K pages
06h WORD minimum window size in 4K pages
08h WORD maximum window size in 4K pages
0Ah WORD window size granularity (4K units)
0Ch WORD required base address alignment (4K units)
0Eh WORD required card offset alignment (4K units)
Format of PCMCIA I/O Window Characteristics table:
Offset Size Description (Table 0572)
00h WORD window capabilities (see #0573)
02h WORD minimum base address in bytes
04h WORD maximum base address in bytes
06h WORD minimum window size in bytes
08h WORD maximum window size in bytes
0Ah WORD window size granularity (bytes)
Bitfields for PCMCIA window capabilities:
Bit(s) Description (Table 0573)
0 programmable base address
1 programmable window size
2 window disable/enable supported
3 8-data bus
4 16-data bus
5 base address alignment on size boundary required
6 power-of-two size granularity
---memory windows---
7 card offset must be aligned on size boundary
8 paging hardware available
9 paging hardware shared
10 page disable/enable supported
11-15 reserved (0)
---I/O windows---
7-15 reserved (0)
--------X-1A88-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
AH = 88h
AL = adapter number
BH = window number
Return: CF clear if successful
AH destroyed
BL = socket number (0-16) (0 = not assigned)
CX = window size (bytes for I/O window, 4K units for memory window)
DH = window attributes (see #0574)
DL = access speed (only one bit set) (see #0570)
SI = window base address (bytes if I/O, 4K units if memory)
DI = card offset address (memory only, 4K units)
CF set on error
AH = error code (01h,11h) (see #0552)
SeeAlso: AH=87h,AH=89h,AH=8Ah
Bitfields for PCMCIA window attributes:
Bit(s) Description (Table 0574)
0 memory-mapped rather than I/O-mapped
1 attribute memory rather than common (memory-mapped)
EISA mapped (I/O)
2 enabled
3 16-data path
4 subdivided into pages (memory-mapped only)
5 non-specific access slot enable (EISA-mapped only)
6-7 reserved (0)
--------X-1A89-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
AH = 89h
AL = adapter number
BH = window number
BL = socket number
CX = window size (bytes if I/O window, 4K units if memory window)
DH = window attributes (see #0574)
DL = access speed (only one bit set) (see #0570)
SI = window base address (bytes if I/O, 4K units if memory window)
DI = card offset addrress (memory only, 4K units)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0552)
SeeAlso: AH=87h,AH=88h,AH=8Bh
--------X-1A8A-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
AH = 8Ah
AL = adapter number
BH = window number
BL = page number
Return: CF clear if successful
AH destroyed
DX = page attributes (see #0575)
DI = memory card offset (4K units)
CF set on error
AH = error code (01h,08h,11h) (see #0552)
Notes: this function is only valid for memory-mapped windows
the socket being operated on is implied by the previous AH=89h call
SeeAlso: AH=88h,AH=8Bh
Bitfields for PCMCIA page attributes:
Bit(s) Description (Table 0575)
0 page enabled
15-1 reserved (0)
--------X-1A8B-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
AH = 8Bh
AL = adapter number
BH = window number
BL = page number
DX = page attributes (see #0575)
DI = memory card offset (4K units)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,07h,08h,11h) (see #0552)
Notes: this function is only valid for memory-mapped windows
the socket being operated on is implied by the previous AH=89h call
SeeAlso: AH=89h,AH=8Ah
--------X-1A8C-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
AH = 8Ch
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
DH = capabilities (see #0576)
DL = hardware indicators (see #0577)
DS:SI -> Socket Characteristics table (see #0578)
DS:DI -> Power Management table (see #0580)
CF set on error
AH = error code (01h,0Bh) (see #0552)
SeeAlso: AH=87h,AH=8Dh,AH=8Eh
Bitfields for PCMCIA socket capabilities:
Bit(s) Description (Table 0576)
0 card change
1 card lock
2 insert card (motor control)
3 eject card (motor control)
4-7 reserved (0)
Bitfields for PCMCIA socket hardware indicators:
Bit(s) Description (Table 0577)
0 busy status
1 write-protected
2 battery status
3 card lock status
4 XIP status (eXecute-In-Place)
5-7 reserved (0)
Format of PCMCIA Socket Characteristics table:
Offset Size Description (Table 0578)
00h WORD supported card types (see #0579)
02h WORD steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
04h WORD additional steerable IRQ levels
bit 0: NMI
bit 1: I/O check
bit 2: bus error
bit 3: vendor-unique
bits 4-7 reserved (0)
Bitfields for supported card types:
Bit(s) Description (Table 0579)
0 memory card
1 I/O card
2-7 reserved (0)
Format of PCMCIA Power Management table:
Offset Size Description (Table 0580)
00h WORD number of entries in table (0 if power management not avail)
02h 2N BYTEs power levels
byte 0: voltage in 0.1V units
byte 1: power supply
bit 7: Vcc
bit 6: Vpp1
bit 5: Vpp2
--------X-1A8D-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
AH = 8Dh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
BH = status change interrupt enable mask (see #0554)
CH = Vcc level (lower nybble) (see #0580)
CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
DH = current socket status (see #0555)
DL = indicators (see #0577)
SI = card type (see #0581)
DI = IRQ level steering (I/O only) (see #0582)
CF set on error
AH = error code (01h,0Bh) (see #0552)
SeeAlso: AH=8Ch,AH=8Eh
Bitfields for PCMCIA card type:
Bit(s) Description (Table 0581)
0 memory
1 I/O
2-15 reserved (0)
Bitfields for PCMCIA I/O level steering:
Bit(s) Description (Table 0582)
15 interrupt steering enabled
14-5 reserved (0)
4-0 IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
--------X-1A8E-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
AH = 8Eh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = status change interrupt enable mask (see #0554)
CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
DH = current socket status (see #0555)
DL = indicators (see #0577)
SI = card type (see #0581)
DI = IRQ level steering (I/O only) (see #0582)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0552)
SeeAlso: AH=8Ch,AH=8Dh
--------X-1A8F-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET CARD
AH = 8Fh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
DL = current card status (see #0556)
CF set on error
AH = error code (01h,0Bh) (see #0552)
SeeAlso: AH=8Dh,AH=90h
--------X-1A90-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
AH = 90h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,0Bh,14h) (see #0552)
Note: toggles RESET pin of the specified card, but does not wait after
toggling the pin; it is the caller's responsibility to avoid
accessing the card before it is ready again
--------X-1A91-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ ONE
AH = 91h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0583)
DX:SI = card address
Return: CF clear if successful
AH destroyed
CL/CX = value read
CF set on error
AH = error code (01h,07h,09h,0Bh,14h) (see #0552)
CX may be destroyed
Note: this function is only valid for I/O-mapped sockets
SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
Bitfields for PCMCIA attributes:
Bit(s) Description (Table 0583)
2 even bytes only
1 word rather than byte
0 attribute memory instead of common memory
--------X-1A92-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
AH = 92h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0583)
CL/CX = value to write
DX:SI = card address
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,0Bh,12h,14h) (see #0552)
Note: this function is only valid for I/O-mapped sockets; it also does not
implement Card Technology handling--use AH=94h when writing to
non-RAM technologies
SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A93-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
AH = 93h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0583)
CX = number of bytes or words to read
DX:SI = card address
DS:DI -> data buffer to be filled
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,09h,0Bh,14h) (see #0552)
Note: this function is only available on I/O-mapped sockets
SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A94-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
AH = 94h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0583)
CX = number of bytes or words to read
DX:DI = card address
DS:SI -> buffer containing data
BP = Card Technology type (0000h = RAM)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0552)
Notes: this function is only available on I/O-mapped sockets
Socket Services calls the Card Technology callback (see #0557) for
any card technology it does not directly support
SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A95-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
AH = 95h
AL = adapter number
BH = EDC generator number
Return: CF clear if successful
AH destroyed
CX = bitmap of assignable sockets
DH = EDC capabilities (see #0584)
DL = supported EDC types (see #0585)
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=96h,AH=9Ch
Bitfields for EDC capabilities:
Bit(s) Description (Table 0584)
0 unidirectional only generation
1 bidirectional only generation
2 register-based (I/O-mapped) support
3 memory-mapped support
4 pausable
5-7 reserved (0)
Bitfields for supported EDC types:
Bit(s) Description (Table 0585)
0 8-checksum
1 16-CRC-SDLC
2-7 reserved (0)
--------X-1A96-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
AH = 96h
AL = adapter number
BH = EDC generator number
Return: CF clear if successful
AH destroyed
BL = socket number
DH = EDC attributes (see #0586)
DL = EDC type (see #0585) (only one bit set)
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=95h,AH=97h,AH=9Ch
Bitfields for EDC attributes:
Bit(s) Description (Table 0586)
0 unidirectional only
1 (if 0 set) clear=read, set=write
2-7 reserved (0)
--------X-1A97-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
AH = 97h
AL = adapter number
BH = EDC generator
BL = socket number
DH = EDC attributes (see #0586)
DL = EDC type (see #0585) (only one bit may be set)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,04h,0Bh) (see #0552)
SeeAlso: AH=96h,AH=9Ch
--------X-1A98-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
AH = 98h
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
--------X-1A99-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
AH = 99h
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=9Ah
--------X-1A9A-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
AH = 9Ah
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=99h,AH=98h
--------X-1A9B-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
AH = 9Bh
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0552)
SeeAlso: AH=98h,AH=99h,AH=9Ch
--------X-1A9C-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
AH = 9Ch
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
DL/DX = computed checksum or CRC
CF set on error
AH = error code (01h,04h) (see #0552)
SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
--------X-1A9D-------------------------------
INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
AH = 9Dh
AL = adapter number
BH = EDC generator
ES:EDI -> vendor information structure (see #0587)
Return: CF clear if successful
AH destroyed
DX = vendor release number in BCD
ES:EDI unchanged
CF set on error
AH = error code (01h,15h) (see #0552)
Notes: this API is supported by recent versions of the AMI BIOS
the low-level API described here is hidden by the higher-level
ExCA API once Card Services has been installed
SeeAlso: AH=9Dh"ExCA"
Format of Vendor Information structure:
Offset Size Description (Table 0587)
00h WORD buffer length (set to size of buffer below)
04h WORD (ret) data length
08h x BYTEs implementor name (ASCIIZ string)
--------X-1A9D-------------------------------
INT 1A - Intel PCMCIA ExCA Card Services - API
AH = 9Dh
AL = subfunction (see #0588)
???
Return: ???
SeeAlso: AH=9Dh"ExCA",#3310
(Table 0588)
Values for PCMCIA ExCA Card Services subfunction number:
00h Client Services: Get Number of Sockets
01h Advanced Client Utilities: Initialize
02h Client Services: Register Client
03h Client Services: Deregister Client
04h Advanced Client Utilities: Enumerate Clients
05h Client Services: Register SCB
06h Client Services: Deregister SCB
07h Advanced Client Utilities: Register MTD
08h Advanced Client Utilities: Deregister MTD
09h Advanced Client Utilities: Enumerate MTD
0Ah Client Services: Get Status
0Bh Client Services: Reset Card
0Ch Client Utilities: Get First Tuple
0Dh Client Utilities: Get Next Tuple
0Eh Client Utilities: Determine First Region
0Fh Client Utilities: Determine Next Region
10h Client Utilities: Get First Region
11h Client Utilities: Get Next Region
12h Client Utilities: Get First Partition
13h Client Utilities: Get Next Partition
14h Bulk Memory Services: Open Region
15h Bulk Memory Services: Read Memory
16h Bulk Memory Services: Write Memory
17h Bulk Memory Services: Copy Memory
18h Bulk Memory Services: Erase Memory
19h Resource Management: Request I/O
1Ah Resource Management: Release I/O
1Bh Resource Management: Request Memory
1Ch Client Services: Modify Window
1Dh Resource Management: Release Memory
1Eh Client Services: Map Mem Page
1Fh Advanced Client Utilities: Return SS Entry
20h Advanced Client Utilities: Map Log to Phy
21h Advanced Client Utilities: Map Log Phy to Log
22h Resource Management: Request IRQ
23h Resource Management: Release IRQ
24h Bulk Memory Services: Close Region
--------X-1A9E-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
AH = 9Eh
AL = adapter number
Return: CF clear if successful
AH destroyed
CX = bitmap representing sockets which have changed status
CF set on error
AH = error code (01h) (see #0552)
Note: this API is supported by recent versions of the AMI BIOS
--------X-1A9F-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
AH = 9Fh
AL = adapter number
BL = mode
00h get prior INT 1Ah handler
01h set prior INT 1Ah handler
CX:DX -> new prior handler
Return: CF clear if successful
AH destroyed
CX:DX -> old prior handler
CF set on error
AH = error code (01h,15h,18h) (see #0552)
Desc: allows hooking of INT 16h "behind" the Socket Services hook
Note: this API is supported by recent versions of the AMI BIOS
SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
--------c-1AA0-------------------------------
INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
AH = A0h
Return: AH = B0h if installed
AL = pending INT 1A/AH=D0h subfunction if nonzero???
ES = code segment
ES:BX -> name of current spool file
ES:SI -> current despool file
CL = despooler state (00h disabled, 41h enabled)
CH = spooler state (00h disabled, 41h enabled)
DL = despooler activity
00h currently active printing a file
41h standing by
DH = 00h ???
= 41h ???
DI = 0000h ???
0001h ???
Program: Disk Spool II is a shareware disk-based print spooler by Budget
Software Company
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
--------X-1AA0-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
AH = A0h
AL = adapter number
BH = mode
00h real mode
01h 16:16 protected mode
02h 16:32 protected mode
03h 00:32 (Flat) protected mode
BL = subfunction
00h return number of additional data areas (see #0589)
01h return description of additional data areas (see #0590)
02h accept mode-specific pointers to data areas (see #0591)
ES:EDI -> buffer supplied by caller
Return: CF clear if successful
AH destroyed
CX = number of additional data areas
ES:EDI unchanged
CF set on error
AH = error code (01h,02h,15h,16h,18h) (see #0552)
SeeAlso: AH=9Fh,AH=AEh
Format of PCMCIA Subfunction 00h Buffer Table Entry structure:
Offset Size Description (Table 0589)
00h DWORD 32-bit linear base address of the code segment
04h DWORD segment limit of the code segment
08h DWORD entry point offset
0Ch DWORD 32-bit linear base address of the data segment
(ignored in 00:32 flat mode)
10h DWORD segment limit of the data segment
14h DWORD data area offset. Only used in 32-bit protected mode.
SeeAlso: #0590,#0591
Format of PCMCIA Additional Data Area Description structure [array]:
Offset Size Description (Table 0590)
00h DWORD 32-bit linear base address of the additional data segment
(ignored in 00:32 flat mode)
04h DWORD segment limit of the code segment
08h DWORD data area offset (only used in 32-bit protected mode)
SeeAlso: #0589,#0591
Format of PCMCIA Subfunction 02h Buffer Table Entry structure:
Offset Size Description (Table 0591)
00h DWORD 32-bit offset(ignored in 16:16 protected mode)
04h DWORD selector (only used in 00:32 flat mode)
08h DWORD reserved
SeeAlso: #0589,#0590
--------X-1AA1-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
AH = A1h
AL = adapter number
BH = Mode
00h = Real Mode
01h = 16:16 Protected Mode
02h = 16:32 Protected Mode
03h = 00:32 Protected Mode
CX = Number of access offsets
ES:EDI -> buffer supplied by caller, CX words long (see #0592)
Return: CF clear if successful
AH destroyed
DX = number of access offsets supported
ES:EDI unchanged
CF set on error
AH = error code (01h,15h,16h) (see #0552)
Desc: Returns an array of low-level adapter-specific optimized
PC Card access routines for adapters that use registers
or I/O ports to access PC Card memory. Adapters that access
PC Card memory through windows mapped to host system memory
do not support this function.
Note: offsets returned are 16-bit offsets into the
Socket Services code segment. They must be called
appropriately for the processor mode selected.
(Real, 16:16 and 16:32 modes use FAR CALL,
Flat 00:32 mode uses a 32-bit NEAR CALL).
SeeAlso: AH=AEh
Format of Offset Table structure:
Offset Size Description (Table 0592)
00h WORD Set Address
02h WORD Set Auto Increment
04h WORD Read Byte
06h WORD Read Word
08h WORD Read Byte with Auto Increment
0Ah WORD Read Word with Auto Increment
0Ch WORD Read Words
0Eh WORD Read Words with Auto Increment
10h WORD Write Byte
12h WORD Write Word
14h WORD Write Byte with Auto Increment
16h WORD Write Word with Auto Increment
18h WORD Write Words
1Ah WORD Write Words with Auto Increment
1Ch WORD Compare Byte
1Eh WORD Compare Byte with Auto Increment
20h WORD Compare Words
22h WORD Compare Words with Auto Increment
--------X-1AA2-------------------------------
INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
AH = A2h
??? details not available
Return: ???
--------X-1AA4-------------------------------
INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
AH = A4h
??? details not available
Return: ???
SeeAlso: AH=A5h"CardBus"
--------X-1AA5-------------------------------
INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
AH = A5h
??? details not available
Return: ???
SeeAlso: AH=A4h"CardBus"
--------c-1AAB-------------------------------
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
AH = ABh
Return: AH = BAh if installed
AL = pending INT 1A/AH=ADh subfunction if nonzero???
ES = code segment
ES:BX -> name of current spool file
ES:SI -> current despool file
CL = despooler state (00h disabled, 41h enabled)
CH = spooler state (00h disabled, 41h enabled)
DL = despooler activity
00h currently active printing a file
41h standing by
DH = 00h ???
= 41h ???
DI = 0000h ???
0001h ???
Program: Disk Spool II is a shareware disk-based print spooler by Budget
Software Company
SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
--------c-1AAC-------------------------------
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
AH = ACh
Return: (see AH=ABh)
Note: this function is identical to AH=ABh
SeeAlso: AH=A0h,AH=ABh,AH=ADh
--------c-1AAD-------------------------------
INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
AH = ADh
AL = function code (see #0593)
Return: AH = 00h if successful
SeeAlso: AH=ABh
(Table 0593)
Values for Disk Spool function code:
02h enable spooler only
03h enable the despooler
04h disable the despooler
08h inhibit popup menu
09h enable popup menu
0Ah ???
0Bh disable the spooler
0Ch start despooler after last successfully printed document???
0Dh start despooler at the exact point where it last left off???
0Eh pop up the menu
0Fh ???
11h ???
14h ???
15h ???
16h ???
17h ???
18h ???
19h ???
20h clear file pointed to by the despooler???
21h ???
22h ???
23h ???
30h ???
--------X-1AAE-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
AH = AEh
AL = adapter number
all other registers are vendor-specific
Return: vendor specific
SeeAlso: AH=A1h,AH=AFh
--------X-1AAE-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - API
AH = AEh
SI = function
0002h ???
0100h ???
0101h ???
8000h ???
8001h ???
details not yet available
Return: CF clear if successful
CF set on error
AH = error code (02h,0Bh,11h,15h,17h) (see #0552)
SeeAlso: AH=9Eh
--------X-1AAF-------------------------------
INT 1A - PCMCIA v2 Card Services - API
AH = AFh
AL = function
00h close memory
01h copy memory
02h deregister client
03h get client information (see #0598)
04h get configuration information (see #0600)
05h get first partition
06h get first region
07h get first tuple (see #0607)
08h get next partition
09h get next region
0Ah get next tuple
0Bh get Card Services information (see #0596)
0Ch get status
0Dh get tuple data (see #0608)
0Eh get first client (see #0597)
0Fh get/register Erase Queue
10h register client (see #0609)
11h reset function
12h map logical socket
13h map logical window
14h map memory page
15h map physical socket
16h map physical window
17h modify window
18h open memory
19h read memory
1Ah register MTD
1Bh release I/O
1Ch release IRQ (see #0611)
1Dh release window
1Eh release configuration (see #0612)
1Fh request I/O (see #0613)
20h request IRQ (see #0614)
21h reqeust window (see #0616)
22h request socket mask
23h return SS entry
24h write memory
25h deregister Erase Queue
26h check Erase Queue
27h modify configuration
28h register timer
29h set region
2Ah get next client
2Bh validate CIS
2Ch request exclusive access (see #0619)
2Dh release exclusive access (see #0619)
2Eh get event mask
2Fh release socket mask
30h request configuration (see #0620)
31h set event mask
32h add Socket Service
33h replace Socket Service
34h vendor-specific
35h adjust resource information
36h access configuration register
37h get first window
38h get next window
39h get memory page
3Ah request DMA
3Bh release DMA
further details not yet available
Return: ??? = result code (see #0594)
SeeAlso: AH=AEh
(Table 0594)
Values for PCMCIA Card Services result codes:
00h successful
01h invalid adapter number
02h bad value for attribute field
03h bad value for base system memory address
04h invalid EDC generator specified
05h (reserved for historical reasons)
06h invalid IRQ level specified
07h invalid PC Card memory array offset
08h invalid page number specified
09h unable to complete read request
0Ah invalid size specified
0Bh invalid socket number
0Ch (reserved for historical reasons)
0Dh invalid window or interface type
0Eh invalid Vcc power level specified
0Fh invalid Vpp1 or Vpp2 power level specified
10h (reserved for historical reasons)
11h invalid window number
12h unable to complete write request
13h (reserved for historical reasons)
14h no PC Card in socket
15h service not supported by implementation
16h unsupported processor mode
17h specified speed not available
18h busy -- retry later
19h undefined error (general failure)
1Ah storage medium write protected
1Bh argument length in (E)CX is invalid
1Ch bad value(s) in argument packet
1Dh configuration has already been locked
1Eh requested resource already in use
1Fh no more items of requested type available
20h out of resources
21h invalid client handle
22h unsupported client version
(Table 0595)
Values for Card Services Callback Event codes:
01h battery dead
02h battery low
03h card locked
04h card has become ready
05h card removed
06h card unlocked
07h motorized ejection complete
08h ejection requested
09h insertion complete
0Ah insertion requested
0Bh power management: resume
0Ch power management: suspend
0Dh exclusive access granted
0Eh exclusive access requested
0Fh perform physical reset
10h physical reset requested
11h card has been reset
12h MTD request (read/write/etc)
14h request for client info
15h timer has expired
16h Socket Service was modified
17h write-protected
18h attention requested
40h card insertion
80h reset complete
81h erase complete
82h registration complete
Format of Card Services Information:
Offset Size Description (Table 0596)
00h WORD length of information record in bytes
02h WORD signature
04h WORD number of sockets
06h WORD revision level
08h WORD Card Services level
0Ah WORD offset of vendor string
0Ch WORD length of vendor string
0Eh WORD number of functions
10h 255 BYTEs vendor string
SeeAlso: #0598
Format of Card Services Client structure:
Offset Size Description (Table 0597)
00h WORD PCMCIA socket number
02h WORD client attributes
Format of Cards Services Client Information:
Offset Size Description (Table 0598)
00h WORD maximum length of data in bytes (180)
02h WORD (ret) length of returned data
04h WORD attributes (see #0599)
06h WORD revision level (BCD)
08h WORD Card Services level (BCD)
0Ah WORD revision date (DOS packed date format) (see #1006)
0Ch WORD offset to name
0Eh WORD length of name
10h WORD offset to vendor string
12h WORD length of vendor string
14h 80 BYTEs buffer for name
64h 80 BYTEs buffer for vendor string
SeeAlso: #0596,#0600
Bitfields for Card Services client attributes:
Bit(s) Description (Table 0599)
0 memory client
1 MTD client
2 I/O client
3 all clients can share this card
4 only one client can use this card at a time
SeeAlso: #0598
Format of Card Services configuration information:
Offset Size Description (Table 0600)
00h WORD socket (usually 0000h)
02h WORD attributes (see #0601)
04h BYTE Vcc value
05h BYTE Vpp1 value
06h BYTE Vpp2 value
07h BYTE interface type (see #0602)
08h DWORD base address of configuration registers
0Ch BYTE card's Status register setting (if present)
0Dh BYTE card's Pin register setting (if present)
0Eh BYTE card's Socket/Copy register setting (if present)
0Fh BYTE card's Option register setting (if present)
10h BYTE bitmap of present card configuration registers
11h BYTE first device type
12h BYTE function code
13h BYTE SysInit mask
14h WORD manufacturer code
16h WORD manufacturer information
18h BYTE valie card register values
19h BYTE IRQ number assigned to PC Card
1Ah WORD IRQ attributes (see #0604)
1Ch WORD base port address (for I/O range 1)
1Eh BYTE number of contiguous ports (for I/O range 1)
1Fh BYTE bitmap of port attributes (for I/O range 1) (see #0605)
20h WORD base port address (for I/O range 2)
22h BYTE number of contiguous ports (for I/O range 2)
23h BYTE bitmap of port attributes (for I/O range 2) (see #0605)
24h BYTE number of I/O address lines decoded (16-bit PC Card only)
25h BYTE extended status register setting (if present)
26h BYTE bitmap of DMA attributes (see #0606)
(note: value at call is used to set!)
27h BYTE assigned DMA channel
28h BYTE number of I/O windows in use on logical socket
29h BYTE number of memory windows in use on logical socket
SeeAlso: #0599,#0620
Bitfields for Card Services Configuration attributes:
Bit(s) Description (Table 0601)
0 exclusive
1 IRQ active
2 CardBus card
3-5 reserved (0)
6 DMA channel is active
7 reserved (0)
8 valid client
9 overwrite voltage value
10-15 reserved (0)
SeeAlso: #0600
Bitfields for Card Services Configuration interface type:
Bit(s) Description (Table 0602)
0 memory interface
1 I/O and memory interface
2 CardBus interface
3-7 reserved (0)
SeeAlso: #0600
Bitfields for Card Services Configuration registers:
Bit(s) Description (Table 0603)
0 option value is value
1 status value
2 pin-replacement value
3 copy value
4 extended status value
5-7 reserved (0)
SeeAlso: #0600
Bitfields for Card Services Configuration IRQ attributes:
Bit(s) Description (Table 0604)
1-0 sharing
00 no sharing
01 time-multiplex sharing
10 dynamic sharing
11 reserved
2 force pulse mode
3 first used together
4-7 reserved
8 pulse IRQ has been assigned
9-15 reserved
SeeAlso: #0600,#0605,#0606,#0611,#0614
Bitfields for Card Services Configuration Port attributes:
Bit(s) Description (Table 0605)
0 shared I/O ports
1 "CS_FirstCommonUsedCard"
2 force alias access
3 =1 sixteen-bit I/O
=0 eight-bit I/O
7-4 reserved (0)
SeeAlso: #0600,#0604,#0606,#0613
Bitfields for Card Services Configuration DMA attributes:
Bit(s) Description (Table 0606)
1-0 sharing mode
00 no sharing
01 time-multiplex sharing
10 dynamic sharing
11 reserved
3-2 DMA request signal
00 reserved
01 DMARQ uses pin SPKR#
10 DMARQ uses pin IOIS16#
11 DMARQ uses pin INPACK#
4 DMA size
0 eight bits
1 sixteen bits
7-5 reserved (0)
SeeAlso: #0600,#0604,#0605
Format of Card Services Tuple information:
Offset Size Description (Table 0607)
00h WORD logical socket number
02h WORD attributes
bit 0: return Link tuples
04h BYTE code value of desired tuple
05h BYTE reserved (0)
06h WORD (ret) TupleFlags
08h DWORD (ret) -> Card Services Link State Information
0Ch DWORD (ret) -> Card Services CIS State Information
10h BYTE (ret) code for tuple
11h BYTE (ret) link value for tuple
SeeAlso: #0608
Format of Card Services GetTupleData record:
Offset Size Description (Table 0608)
00h WORD logical socket
02h WORD attributes
04h BYTE code value of desired tuple
05h BYTE offset into tuple from link byte
06h WORD flags
08h DWORD -> Link
0Ch DWORD -> CIS
10h WORD (call) maximum amount of data to return (0004h)
12h WORD (ret) amount of data returned
14h DWORD (ret) tuple data
SeeAlso: #0607
Format of Card Services Client Registration record:
Offset Size Description (Table 0609)
00h WORD attributes
02h WORD event mask
04h WORD client data (passed to client event handler in DI)
--- 16-bit code ---
06h WORD client data selector (passed to event handler in DS)
08h WORD client data offset (passed to event handler in SI)
0Ah WORD reserved
--- 32-bit code ---
06h WORD reserved
08h DWORD client data offset (passed to event handler in ESI)
------
0Ch WORD expected Card Services version (0210h for v2.10)
Bitfields for Card Services client event codes:
Bit(s) Description (Table 0610)
0 change in write-protect status
1 change in card lock
2 ejection request
3 insertion request
4 battery is dead
5 battery low
6 change in Ready
7 change in Card Detect
8 power management change
9 reset
10 Socket Services updated
11 extended status change
SeeAlso: #0609
Format of Card Services ReleaseIRQ record:
Offset Size Description (Table 0611)
00h WORD logical socket number
02h WORD attributes (see #0604)
04h BYTE assigned IRQ number to be released
Format of Card Services Release Configuration record:
Offset Size Description (Table 0612)
00h WORD logical socket number
Format of Card Services Request I/O record:
Offset Size Description (Table 0613)
00h WORD logical socket number
02h WORD base port 1
04h BYTE size of port range 1
05h BYTE attributes for port range 1 (see #0605)
06h WORD base port 2
08h BYTE size of port range 2
09h BYTE attributes for port range 2 (see #0605)
0Ah BYTE number of address lines (typically 16)
SeeAlso: #0614,#0612
Format of Card Services Request IRQ record:
Offset Size Description (Table 0614)
00h WORD logical socket number
02h WORD attributes (see #0604)
04h BYTE (ret) assigned IRQ number, if successful
05h BYTE IRQ info (see #0615)
06h WORD bitmap of available IRQs (bit 0 = IRQ0, etc.)
(only if bit 4 of IRQ info set)
SeeAlso: #0613,#0612
Bitfields for Card Services Request IRQ info flags:
Bit(s) Description (Table 0615)
7 IRQ is shared
6 pulse (edge-triggered) interrupt
5 level interrupt
4 use IRQ bitmap
--- bit 4 set ---
3 vendor-specific interrupt
2 bus error
1 I/O check interrupt
0 NMI
--- bit 4 clear ---
3-0 IRQ number
SeeAlso: #0614
Format of Card Services Request Window record:
Offset Size Description (Table 0616)
00h WORD logical socket number
02h WORD attributes (see #0617)
04h DWORD system base adress
08h DWORD size of memory window
0Ch BYTE additional info
if attributes bit ??? is set, this is the address-lines field
otherwise, this is the access-speed field (see #0618)
Bitfields for Card Services Request Window attributes:
Bit(s) Description (Table 0617)
0 I/O window instead of memory window
1 attribute memory instead of normal memory (16-bit PC Cards only)
2 window enabled
3 16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+)
(ignored if bit 9 set)
4 size is given in 16K pages (invalid for CardBus PC Cards)
5 shared (invalid for CardBus)
6 first shared (invalid for CardBus)
7 "CS_BindingSpecific" (memory window only)
8 card offsets are window-size granular (16-bit PC Card memory window)
9 32-bit data path (CardBus only)
10 reserved (0)
12-11 prefetch/cache
00 neither prefetchable nor cacheable
01 prefetchable but not cacheable
10 prefetchable and cachable
11 reserved
15-13 decoded base address register number (CardBus only)
SeeAlso: #0616,#0618
Bitfields for Card Services Request Window access-speed:
Bit(s) Description (Table 0618)
6-3 mantissa
0000 use device speed code
0001 1.0
0010 1.2
0011 1.2 ???
0100 1.5
0101 2.0
0110 2.5
0111 3.0
1000 3.5
1001 4.0
1010 4.5
1011 5.0
1100 5.5
1101 6.0
1110 7.0
1111 8.0
--- if mantissa==0 ---
2-0 device speed code
000 reserved
001 250 ns
010 200 ns
011 150 ns
100 100 ns
101-111 reserved
--- if mantissa<>0 ---
2-0 speed exponent
000 1 ns
001 10 ns
010 100 ns
011 1 us
100 10 us
101 100 us
110 1 ms
111 10 ms
SeeAlso: #0616,#0617
Format of Card Services Request/Release Exclusive Access record:
Offset Size Description (Table 0619)
00h WORD logical socket number
02h WORD attributes (currently all reserved, must be 0000h)
Format of Card Services Request Configuration record:
Offset Size Description (Table 0620)
00h WORD socket (usually 0000h)
02h WORD attributes (see #0601)
04h BYTE Vcc value
05h BYTE Vpp1 value
06h BYTE Vpp2 value
07h BYTE interface type (see #0602)
08h DWORD base address of configuration registers
0Ch BYTE card's Status register setting (if present)
0Dh BYTE card's Pin register setting (if present)
0Eh BYTE card's Socket/Copy register setting (if present)
0Fh BYTE card's Option register setting (if present)
10h BYTE bitmap of present card configuration registers
11h BYTE extended status register setting (if present)
SeeAlso: #0600
--------X-1AB000-----------------------------
INT 1A U - HP 100LX/200LX - PCMCIA - ???
AX = B000h
ES:BX -> parameter block ???
Return: CF clear if ???
CF set if ???
Note: called by HP 100LX/200LX PCMCIA client CIC100.EXE
--------d-1AB001CX4D52-----------------------
INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
AX = B001h
CX = 4D52h ("MR")
DX = 4349h ("CI")
Return: CX = 4943h ("IC") if installed
DX = 524Dh ("RM") if installed
ES:DI -> MRCINFO structure (see #0621)
Note: this call is functionally identical to INT 2F/AX=4A12h, which should
be called first, as this call is used for the first, ROM-based
MRCI server, while the other call is used for RAM-based servers
which may be partially or entirely replacing a prior server
SeeAlso: INT 2F/AX=4A12h
Format of MRCINFO structure:
Offset Size Description (Table 0621)
00h 4 BYTEs vendor signature
"MSFT" Microsoft
04h WORD server version (high=major)
06h WORD MRCI specification version
08h DWORD address of server entry point (see #0623)
0Ch WORD bit flags: server capabilities (see #0622)
0Eh WORD bit flags: hardware assisted capabilities (see #0622)
10h WORD maximum block size supported by server (at least 8192 bytes)
Bitfields for MRCI capabilities:
Bit(s) Description (Table 0622)
0 standard compress
1 standard decompress
2 update compress
3 MaxCompress (not present in initial public release)
4 reserved
5 incremental decompress
6 MRCI 2.0 standard compress
7 MRCI 2.0 standard decompress
8-14 reserved
15 this structure is in ROM and can't be modified
(server capabilities only)
(Table 0623)
Call MRCI entry point with:
DS:SI -> MRCREQUEST structure (see #0624)
CX = type of client (0000h application, 0001h file system)
AX = operation
0001h perform standard compression
0002h perform standard decompression
0004h perform update compression
0008h perform MaxCompress
0020h perform incremental decompression
0040h perform MRCI 2.0 standard compression
0080h perform MRCI 2.0 standard decompression
AX = FFFFh clear flags
BX = bitmask of flags to clear (set bits in BX are flags to clear)
Return: AX = status
0000h successful
0001h invalid function
0002h server busy, try again
0003h destination buffer too small
0004h incompressible data
0005h bad compressed data format
BP destroyed (MS-DOS 6.2)
Note: MRCI driver may chain to a previous driver
Format of MRCREQUEST structure:
Offset Size Description (Table 0624)
00h DWORD pointer to source buffer
04h WORD size of source buffer (0000h = 64K)
06h WORD (UpdateCompress only)
(call) offset in source buffer of beginning of changed data
(ret) offset in destination buffer of beginning of changed
compressed data
08h DWORD pointer to destination buffer
must contain original compressed data for UpdateCompress
0Ch WORD size of destination buffer (0000h = 64K)
any compression: size of buffer for compressed data
standard decompression: number of bytes to be decompressed
incremental decompression: number of byte to decompress now
(ret) actual size of resulting data
0Eh WORD client compressed data storage allocation size
10h DWORD incremental decompression state data
set to 00000000h before first incremental decompression call
Notes: the source and destination buffers may not overlap
the source and destination buffer sizes should normally be the same
application should not update the contents of the MRCREQUEST structure
between incremental decompression calls
--------X-1AB101-----------------------------
INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK
AX = B101h
Return: AH = 00h if installed
CF clear
EDX = 20494350h (' ICP')
EDI = physical address of protected-mode entry point (see #0627)
AL = PCI hardware characteristics (see #0626)
BH = PCI interface level major version (BCD)
BL = PCI interface level minor version (BCD)
CL = number of last PCI bus in system
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Note: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
SeeAlso: AX=B181h
(Table 0625)
Values for PCI BIOS v2.0c status codes:
00h successful
81h unsupported function
83h bad vendor ID
86h device not found
87h bad PCI register number
Bitfields for PCI hardware characteristics:
Bit(s) Description (Table 0626)
0 configuration space access mechanism 1 supported
1 configuration space access mechanism 2 supported
2-3 reserved
4 Special Cycle generation mechanism 1 supported
5 Special Cycle generation mechanism 2 supported
6-7 reserved
(Table 0627)
Call protected-mode entry point with:
registers as for real/V86-mode INT call
CS = ring 0 descriptor with access to full address space
Return: as for real/V86-mode call
--------X-1AB102-----------------------------
INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE
AX = B102h
CX = device ID
DX = vendor ID
SI = device index (0-n)
Return: CF clear if successful
CF set on error
AH = status (00h,83h,86h) (see #0625)
00h successful
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 func)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
device ID FFFFh may be reserved as a wildcard in future implementations
the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
all devices sharing a single vendor ID and device ID may be enumerated
by incrementing SI from 0 until error 86h is returned
SeeAlso: AX=B182h
--------X-1AB103-----------------------------
INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE
AX = B103h
ECX = class code (see also #F057,#0628)
bits 31-24 unused
bits 23-16 class
bits 15-8 subclass
bits 7-0 programming interface
SI = device index (0-n)
Return: CF clear if successful
CF set on error
AH = status (00h,86h) (see #0625)
00h successful
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 func)
86h device not found
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
all devices sharing the same Class Code may be enumerated by
incrementing SI from 0 until error 86h is returned
SeeAlso: AX=B183h
--------X-1AB106-----------------------------
INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS
AX = B106h
BL = bus number
EDX = Special Cycle data
Return: CF clear if successful
CF set on error
AH = status (00h,81h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Note: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
SeeAlso: AX=B186h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB108-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE
AX = B108h
BL = device/function number (bits 7-3 device, bits 2-0 function)
BH = bus number
DI = register number (0000h-00FFh) (see #0628)
Return: CF clear if successful
CL = byte read
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h,AX=B10Ah,AX=B188h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB109-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD
AX = B109h
BL = device/function number (bits 7-3 device, bits 2-0 function)
BH = bus number
DI = register number (0000h-00FFh) (see #0628)
Return: CF clear if successful
CX = word read
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B10Ah,AX=B189h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10A-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD
AX = B10Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see #0628)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B109h,AX=B18Ah,INT 2F/AX=1684h/BX=304Ch
Format of PCI Configuration Data:
Offset Size Description (Table 0628)
00h WORD vendor ID (read-only) (see #0629)
FFFFh returned if requested device non-existent
02h WORD device ID (read-only)
04h WORD command register (see #0630)
06h WORD status register (see #0631)
08h BYTE revision ID
09h 3 BYTEs class code
bits 7-0: programming interface
bits 15-8: sub-class
bits 23-16: class code (see also #F057)
0Ch BYTE cache line size
0Dh BYTE latency timer
0Eh BYTE header type
bits 6-0: header format
00h other
01h PCI-to-PCI bridge
02h PCI-to-CardBus bridge
bit 7: multi-function device
0Fh BYTE Built-In Self-Test result (see #0632)
---header type 00h---
10h DWORD base address 0 (see #0633)
(OpenHCI) base address of host controller registers (see #3330)
14h DWORD base address 1
18h DWORD base address 2
1Ch DWORD base address 3
20h DWORD base address 4
24h DWORD base address 5
28h DWORD CardBus CIS pointer (read-only) (see #0635)
2Ch WORD subsystem vendor ID or 0000h
2Eh WORD subsystem ID or 0000h
30h DWORD expansion ROM base address (see #0634)
34h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #3325)
35h 3 BYTEs reserved
38h DWORD reserved
3Ch BYTE interrupt line
00h = none, 01h = IRQ1 to 0Fh = IRQ15
3Dh BYTE interrupt pin (read-only)
(00h = none, else indicates INTA# to INTD#)
3Eh BYTE minimum time bus master needs PCI bus ownership, in 250ns units
(read-only)
3Fh BYTE maximum latency, in 250ns units (bus masters only) (read-only)
40h 48 DWORDs varies by device (see #0638,#0639,#0640,#0643)
---header type 01h---
10h DWORD base address 0 (see #0633)
14h DWORD base address 1
18h BYTE primary bus number (for bus closer to host processor)
19h BYTE secondary bus number (for bus further from host processor)
1Ah BYTE subordinate bus number
1Bh BYTE secondary latency timer
1Ch BYTE I/O base (see #0636)
1Dh BYTE I/O limit (see #0636)
1Eh WORD secondary status
20h WORD memory base (see #0637)
22h WORD memory limit
24h WORD prefetchable memory base
26h WORD prefetchable memory limit
28h DWORD prefetchable base, upper 32 bits
2Ch DWORD prefetchable limit, upper 32 bits
30h WORD I/O base, upper 16 bits
32h WORD I/O limit, upper 16 bits
34h DWORD reserved
38h DWORD expansion ROM base address
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only)
3Eh WORD bridge control
40h 48 DWORDs varies by device (see #0638,#0639,#0640,#0643)
---header type 02h---
10h DWORD CardBus Socket/ExCa base address (see #3309)
bits 31-12: start address of socket interface register block
in 4K blocks
bits 11-0: reserved (0)
14h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #3325)
15h BYTE reserved
16h WORD secondary status
18h BYTE PCI bus number
19h BYTE CardBus bus number
1Ah BYTE subordinate bus number
1Bh BYTE CardBus latency timer
1Ch DWORD memory base address 0
20h DWORD memory limit 0
24h DWORD memory base address 1
28h DWORD memory limit 1
2Ch WORD I/O base address 0
2Eh WORD I/O base address 0 high word (optional)
30h WORD I/O limit 0
32h WORD I/O limit 0 high word (optional)
34h WORD I/O base address 1
36h WORD I/O base address 1 high word (optional)
38h WORD I/O limit 1
3Ah WORD I/O limit 1 high word (optional)
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only) (no interrupt used if 00h)
3Eh WORD bridge control
40h WORD subsystem vendor ID
42h WORD subsystem device ID
44h DWORD 16-bit PC Card legacy mode base address (for accessing ExCa
registers)
48h 14 DWORDs reserved
80h 32 DWORDs varies by device (see #0638,#0639,#0640,#0643)
(Table 0629)
Values for PCI vendor ID:
003Dh Martin-Marietta Corporation
0E11h Compaq
1000h Symbios Logic Inc (formerly NCR)
1002h ATI (see #3444)
1003h ULSI Systems
1004h VLSI Technologies
1005h Avance Logics (ADL)
1006h Reply Group
1007h Netframe Systems Inc.
1008h Epson
100Ah Phoenix Technologies
100Bh National Semiconductor
100Ch Tseng Labs (see #3443) (also ID 10BEh)
100Dh AST Research
100Eh Weitek
1010h Video Logic Ltd
1011h DEC (see #3442)
1012h Micronics Computers
1013h Cirrus Logic (see #3440,#0028)
1014h IBM
1015h LSI Logic Corp. of Canada
1016h ICL Personal Systems
1017h SPEA Software AG
1018h Unisys
1019h EliteGroup Computer Sys
101Ah NCR/AT&T GIS
101Bh Vitesse Semiconductor
101Ch Western Digital
101Eh AMI
101Fh Picturetel
1020h Hitachi Computer Electronics
1021h Oki Electric Industry
1022h Advanced Micro Devices (see #3439)
1023h Trident Microsystems (see #3441)
1024h Zenith Data Systems
1025h Acer
1028h Dell Computer Corporation
1029h Siemens Nixdorf
102Ah LSI Logic, Headland Division
102Bh Matrox
102Ch Chips & Technologies
102Dh Wyse Technologies
102Eh Olivetti Advanced Technology
102Fh Toshiba America
1030h TMC Research
1031h Miro / Micro Computer Products AG
1032h Compaq
1033h NEC Corporation
1034h Burndy Corporation
1035h Computers and Communications Research Lab
1036h Future Domain
1037h Hitachi Micro Systems
1038h AMP Incorporated
1039h Silicon Integrated System (SIS)
103Ah Seiko Epson Corporation
103Bh Tatung Corp. of America
103Ch Hewlett-Packard
103Eh Solliday
103Fh Logic Modeling
1040h Kubota Pacific
1041h Computrend
1042h PC Technology (see also PORT 03F0h"PCTech")
1043h Asustek
1044h Distributed Processing Technology (DPT)
1045h OPTi (see #3445)
1046h IPC Corporation, Ltd.
1047h Genoa Systems Corp.
1048h Elsa GmbH
1049h Fountain Technology
104Ah SGS Thomson Microelectric
104Bh BusLogic
104Ch Texas Instruments
104Dh Sony Corporation
104Eh Oak Technology
104Fh Co-Time Computer Ltd.
1050h Winbond
1051h Anigma Corp.
1052h Young Micro Systems
1054h Hitachi, Ltd.
1055h EFAR Microsystems
1056h ICL
1057h Motorola
1058h Electronics and Telecommunications Research
1059h Teknor Microsystems
105Ah Promise Technology
105Bh Foxconn International
105Ch Wipro Infotech Ltd.
105Dh Number 9 Computer Company
105Eh VTech Engineering Canada, Ltd.
105Fh Infotronic America, Inc.
1060h United Microelectronics (UMC)
1061h 8x8 (X Tech)
1062h Maspar Computer Copr.
1063h Ocean Office Automation
1064h Alcatel Cit
1065h Texas Microsystems
1066h PicoPower Technology
1067h Mitsubishi Electronics
1068h Diversified Technology
1069h Mylex Corporation
106Ah Aten Research
106Bh Apple Computer
106Ch Hyundai Electronics America
106Dh Sequent
106Eh DFI Inc.
106Fh City Gate Development, Ltd.
1070h Daewoo Telecom Ltd.
1071h Mitac
1072h GIT Co., Ltd.
1073h Yamaha Corporation
1074h NexGen Microsystems
1075h Advanced Integration Research
1076h Chaintech Computer Co. Ltd.
1077h Q Logic
1078h Cyrix Corporation
1079h I-Bus
107Ah Networth
107Bh Gateway 2000
107Ch Goldstar Co. Ltd.
107Dh Leadtek Research
107Eh Interphase Corporation
107Fh Data Technology Corporation (DTC)
1080h Contaq Microsystems
1081h Supermac Technology
1082h EFA Corporation of America
1083h Forex Computer Corporation
1084h Parador
1085h Tulip Computers Int'l BV
1086h J. Bond Computer Systems
1087h Cache Computer
1088h Microcomputer Systems (M) Son
1089h Data General Corporation
108Ah Bit3 Computer
108Ch Elonex PLC (Oakleigh Systems, Inc)
108Dh Olicom
108Eh Sun Microsystems
108Fh Systemsoft Corporation
1090h Encore Computer Corporation
1091h Intergraph Corporation
1092h Diamond Computer Systems
1093h National Instruments
1094h First International Computers (FIC)
1095h CMD Technology, Inc.
1096h Alacron
1097h Appian Technology
1098h Vision / Quantum Designs Ltd
1099h Samsung Electronics Co. Ltd.
109Ah Packard Bell
109Bh Gemlight Computer Ltd.
109Ch Megachips Corporation
109Dh Zida Technologies
109Eh Brooktree Corporation
109Fh Trigem Computer Inc.
10A0h Meidensha Corporation
10A1h Juko Electronics Inc. Ltd.
10A2h Quantum Corporation
10A3h Everex Systems Inc.
10A4h Globe Manufacturing Sales
10A5h Racal Interlan
10A6h Informtech Industrial Ltd.
10A7h Benchmarq Microelectronics
10A8h Sierra Semiconductor
10A9h Silicon Graphics
10AAh ACC Microelectronics
10ABh Digicom
10ACh Honeywell IASD
10ADh Symphony Labs
10AEh Cornerstone Technology
10AFh Microcomputer Systems
10B0h CardExpert Technology
10B1h Cabletron Systems, Inc.
10B2h Raytheon Company
10B3h Databook Inc
10B4h STB Systems
10B5h PLX Technology
10B7h 3com Corporation
10B8h Standard Microsystems Corporation (SMC)
10B9h Acer Labs Inc.
10BAh Mitsubishi Electronics Corp.
10BBh Dapha Electronics Corporation
10BCh Advanced Logic Research Inc. (ALR)
10BDh Surecom Technology
10BEh Tseng Labs International Corp. (see #3443)
10BFh Most Inc.
10C0h Boca Research Inc.
10C1h ICM Corp. Ltd.
10C2h Auspex Systems Inc.
10C3h Samsung Semiconductors
10C4h Award Software International Inc.
10C5h Xerox Corporation
10C6h Rambus Inc.
10C7h Media Vision
10C8h Neomagic Corporation
10C9h DataExpert Corporation
10CAh Fujitsu
10CBh Omron Corporation
10CCh Mentor Arc Inc.
10CDh Advanced System Products
10CEh Radius Inc.
10CFh Citicorp TTI
10D0h Fujitsu Limited
10D1h Future+ Systems
10D2h Molex Incorporated
10D3h Jabil Circuit Inc.
10D4h Hualon Microelectronics
10D5h Autologic Inc.
10D6h Cetia
10D7h BCM Advanced Research
10D8h Advanced Peripherals Labs
10D9h Macronix International Co. Ltd
10DAh Thomas-Conrad Corporation
10DBh Rohm Research
10DCh CERN/ECP/EDU
10DDh Evans & Sutherland
10DEh NVidia Corporation
10DFh Emulex Corporation
10E0h Integrated Micro Solutions (IMS)
10E1h TekRAM Technology Corporation Ltd.
10E2h Aptix Corporation
10E3h Newbridge Microsystems
10E4h Tandem Computers
10E5h Micro Industries
10E6h Gainbery Computer Products Inc.
10E7h Vadem
10E8h Applied Micro Circuits Corp.
10E9h Alps Electronic Corp. Ltd.
10EAh Integraphics Systems
10EBh Artist Graphics
10ECh Realtek Semiconductor
10EDh ASCII Corporation
10EEh Xilinx Corporation
10EFh Racore Computer Products
10F0h Peritek Corporation
10F1h Tyan Computer
10F2h Achme Computer Inc.
10F3h Alaris Inc.
10F4h S-MOS Systems
10F5h NKK Corporation
10F6h Creative Electronic Systems SA
10F7h Matsushita Electric Industrial Corp. Ltd.
10F8h Altos India Ltd.
10F9h PC Direct
10FAh Truevision
10FBh Thesys Microelectronics
10FCh I/O Data Device Inc.
10FDh Soyo Technology Corp. Ltd.
10FEh Fast Electronic GmbH
10FFh N-Cube
1100h Jazz Multimedia
1101h Initio Corporation
1102h Creative Labs
1103h Triones Technologies Inc.
1104h Rasterops
1105h Sigma Designs, Inc.
1106h VIA Technologies
1107h Stratus Computer
1108h Proteon Inc.
1109h Cogent Data Technologies
110Ah Siemens AG / Siemens Nixdorf AG
110Bh Xenon Microsystems
110Ch Mini-Max Technology Inc.
110Dh ZNyX Corporation
110Eh CPU Technology
110Fh Ross Technology
1110h Powerhouse Systems
1111h Santa Cruz Operation (SCO)
1112h Rockwell / RNS division of Meret Communications Inc.
1113h Accton Technology Corporation
1114h Atmel Corporation
1115h DuPont Pixel Systems
1116h Data Translation
1117h Datacube Inc.
1118h Berg Electronics
1119h Vortex Computersysteme GmbH
111Ah Efficient Networks, Inc.
111Bh Teledyne Electronic Systems
111Ch Tricord Systems, Inc.
111Dh Integrated Device Technology
111Eh Eldec Corporation
111Fh Precision Digital Images
1120h EMC Corporation
1121h Zilog
1122h Multi-tech Systems, Inc.
1124h Leutron Vision AG
1125h Eurocore
1126h Vigra
1127h FORE Systems
1128h ???
1129h Firmworks
112Ah Hermes Electronics Co.
112Bh Linotype - Hell AG
112Dh Ravicad
112Eh Infomedia MicroElectronics Inc
112Fh Imaging Technology
1130h Computervision
1131h Philips Semiconductors
1132h Mitel Corp
1133h Eicon Technology Corporation
1134h Mercury Computer Systems Inc
1135h Fuji Xerox Co Ltd
1136h Momentum Data Systems
1137h Cisco Systems Inc
1138h Ziatech Corporation
1139h Dynamic Pictures Inc
113Ah FWB Inc
113Ch Cyclone Microsystems
113Dh Leading Edge Products Inc
113Eh Sanyo Electric Co
113Fh Equinox Systems
1140h Intervoice Inc
1141h Crest Microsystem Inc
1142h Alliance Semiconductor Corp
1143h Netpower, Inc.
1144h Cincinnati Milacron
1145h Workbit Corp
1146h Force Computers
1147h Interface Corp.
1148h Schneider & Koch Co.
1149h Win System Corporation
114Ah VMIC
114Bh Canopus Co.
114Ch Annabooks
114Dh IC Corporation
114Eh Nikon Systems Inc
114Fh Digi International / Stargate
1150h Thinking Machines Corp.
1151h JAE Electronics Inc.
1152h Megatek
1153h Land Win Electronic Corp.
1154h Melco Inc.
1155h Pine Technology Ltd.
1156h Periscope Engineering
1157h Avsys Corporation
1158h Voarx R&D Inc.
1159h MuTech
115Ah Harleguin Ltd.
115Bh Parallax Graphics
115Ch ???
115Dh Xircom
115Eh Peer Protocols Inc.
115Fh ???
1160h Megasoft Inc.
1161h PFU Ltd.
1162h OA Laboratory Co Ltd.
1163h ???
1164h Advanced Peripherals Tech
1165h Imagraph Corporation
1166h Pequr Technology Inc.
1167h Mutoh Industries, Inc.
1168h Thine Electronics Inc
1169h ???
116Ah Polaris Communications
116Bh Connectware Inc
116Ch ???
116Dh ???
116Eh ???
116Fh Workstation Technology
1170h Inventec Corporation
1171h Loughborough Sound Images
1172h Altera Corporation
1173h Adobe Systems
1174h Bridgeport Machines
1175h Mitron Computer Inc.
1176h SBE
1177h Silicon Engineering
1178h Alfa Inc
1179h Toshiba America Info Systems
117Ah A-Trend Technology
117Bh ???
117Ch Atto Technology
117Dh ???
117Eh T/R Systems
117Fh ???
1180h Ricoh Co Ltd
1181h Telmatics International
1182h ???
1183h Fujikura Ltd
1184h Forks Inc
1185h Dataworld
1186h D-Link System Inc
1187h Advanced Technology Laboratories
1188h Shima Seiki Manufacturing Ltd.
1189h Matsushita Electronics
118Ah Hilevel Technology
118Bh ???
118Ch Corollary Inc
118Dh BitFlow Inc
118Eh Hermstedt GmbH
118Fh ???
1190h ???
1191h Artop Electric
1192h Densan Co. Ltd
1193h Zeitnet Inc.
1194h Toucan Technology
1195h Ratoc System Inc
1196h Hytec Electronics Ltd
1197h Gage Applied Sciences Inc.
1198h Lambda Systems Inc
1199h Digital Communications Associates Inc,
119Ah Mind Share Inc.
119Bh Omega Micro Inc.
119Ch Information Technology Inst.
119Dh Bug Sapporo Japan
119Eh Fujitsu
119Fh Bull Hn Information Systems
11A0h Convex Computer Corporation
11A1h Hamamatsu Photonics K.K.
11A2h Sierra Research and Technology
11A4h Barco
11A5h MicroUnity Systems Engineering, Inc.
11A6h Pure Data
11A7h Power Computing Corp.
11A9h InnoSys Inc.
11AAh Actel
11ABh Galileo Technology Ltd.
11ACh Canon Information Systems
11ADh Lite-On Communications Inc
11AEh Scitex Corporation Ltd
11AFh Pro-Log Corporation
11B0h V3 Semiconductor Inc.
11B1h Apricot Computers
11B2h Eastman Kodak
11B3h Barr Systems Inc.
11B4h Leitch Technology International
11B5h Radstone Technology Plc
11B6h United Video Corp
11B7h Motorola
11B8h Xpoint Technologies Inc
11B9h Pathlight Technology Inc.
11BAh Videotron Corp
11BBh Pyramid Technology
11BCh Network Peripherals Inc
11BDh Pinnacle Systems Inc.
11BEh International Microcircuits Inc
11C3h NEC Corporation
11C4h Document Technologies Ind.
11C5h Shiva Corporatin
11C7h D.C.M. Data Systems
11C8h Dolphin Interconnect Solutions
11C9h MAGMA
11CAh LSI Systems Inc
11CBh Specialix Research Ltd.
11CCh Michels & Kleberhoff Computer GmbH
11CDh HAL Computer Systems Inc.
11DEh Zoran Corporation
11F8h PMC-Sierra Inc.
120Eh Cyclades
1220h Ariel Corporation
122Dh Aztech Systems Ltd
1239h The 3DO Company
124Dh Stallion Technologies
1254h Linear Systems Ltd.
125Ch Aurora Technologies, Inc.
1275h Network Appliance
127Ah Rockwell Semiconductor Systems
1296h Kofax Image Products
12C5h Picture Elements, Inc.
1C1Ch Symphony
1DE1h TekRAM
3D3Dh 3DLabs
4005h Avance Logic, Inc.
4B10h Buslogic Inc.
5333h S3 (see also #3307)
5700h Netpower
6374h c't Magazin fuer Computertechnik
8008h Quanc?m Electronic GmbH
8086h Intel (see also #3308)
8800h Trigem Computer
8E0Eh Computone Corporation
9004h Adaptec (see #3446)
907Fh Atronics
EDD8h Ark Logic Inc
SeeAlso: #0628
(Table 3444)
Values for ATI PCI device code:
4158h 68800AX (Mach32)
4354h 215CT222
4358h 210888CX
4758h 210888GX (Mach64)
SeeAlso: #0629
(Table 3442)
Values for DEC PCI device code:
0001h DEC BRD
0002h Tulip
0009h Tulip Fast
000Fh FDDI
0014h Tulip Plus
SeeAlso: #0629
(Table 3440)
Values for Cirrus Logic PCI device code:
00A0h Cirrus 5430
00A4h Cirrus 5434-4
00A8h Cirrus 5434-8
1100h Cirrus 6729
1200h Cirrus 7542
SeeAlso: #0629
(Table 3439)
Values for Advanced Micro Devices PCI device code:
2000h Am79C970 (Lance), Am79C971 (PCnet-FAST, PCI revision ID is 2xh)
2020h Am53c974 SCSI
SeeAlso: #0629
(Table 3441)
Values for Trident PCI device code:
9420h Trident 9420
9440h Trident 9440
SeeAlso: #0629
(Table 3445)
Values for OPTi PCI device code:
C557h 82C557
C558h 82C558
C621h 82C621
C822h 82C822
SeeAlso: #0629
(Table 3443)
Values for Tseng Labs PCI device code:
3202h ET4000/W32p-2
3205h ET4000/W32p-B
3206h ET4000/W32p-C
3207h ET4000/W32p-D
SeeAlso: #0629
(Table 3307)
Values for S3 PCI device code:
8811h Trio64V+
8880h S3 868
88B0h S3 928
88C0h S3 864-1
88C1h S3 864-2
88D0h S3 964-1
88D1h S3 964-2
88F0h S3 968
SeeAlso: #0629,#3308
(Table 3308)
Values for Intel PCI device code:
0122h 82437FX (typo in docs??? 122?h instead?)
0482h 82375 EISA
0483h 82424 Cache Controller
0484h 82378/82379 Bus Interface (Mercury/Saturn/Neptune chipsets) (see #0642)
0486h 82425EX/82430
04A3h 82434 (Neptune) (see #0640)
1223h Intel 7116
1227h 82865
122Dh 82437 (Triton)
122Eh 82371FB ISA Bridge (Triton)
1230h 82338 IDE controller / 82371FB IDE function (Triton)
1234h 82371MX
1235h 82437MX
1237h 82441FX (see #3424)
1250h 82439HX (430HX chipset) (see #3407)
7000h 82371SB ISA Bridge (see #3410)
7010h 82371SB IDE controller (see #3411)
7020h 82371SB (see #3414)
7030h 82437VX (430VX chipset) (see #3392)
84C4h Pentium Pro CPU
SeeAlso: #0629,#3307
(Table 3446)
Values for Adaptec PCI device code:
5078h Adaptec 7850
7078h Adaptec 294x
7178h Adaptec 2940
7278h Adaptec 7872
SeeAlso: #0629
Bitfields for PCI Configuration Command Register:
Bit(s) Description (Table 0630)
0 I/O access enabled
1 memory access enabled
2 bus master enable
3 special cycle recognition enabled
4 memory write and invalidate enabled
5 VGA palette snoop enabled
6 parity error response enabled
7 wait cycles enabled
8 system error (SERR# line) enabled
9 fast back-to-back transactions enabled
15-10 reserved
SeeAlso: #0628,#0631
Format of PCI Configuration Status Register:
Bit(s) Description (Table 0631)
3-0 reserved (0)
4 new capabilities list is present (first entry pointed at by byte at
34h or 14h)
5 capable of running at 66 MHz
6 UDF supported
7 capable of fast back-to-back transactions
8 data parity error reported
10-9 device select timing
00 fast
01 medium
10 slow
11 reserved
11 signaled target abort
12 received target abort
13 received master abort
14 signaled system error (device is asserting SERR# line)
15 detected parity error (set even if parity error reporting is disabled)
Note: bits 12 and 13 are cleared by writing a 1 into the corresponding bit
SeeAlso: #0628,#0630
Bitfields for PCI Configuration Built-In Self-Test register:
Bit(s) Description (Table 0632)
3-0 completion code (0000 = successful)
5-4 reserved
6 start BIST (set to one to start, cleared automatically on completion)
7 BIST-capable
Notes: this register is hardwired to 00h if no BIST capability
software should timeout the BIST after two seconds
SeeAlso: #0628
Bitfields for PCI Configuration Base Address:
Bit(s) Description (Table 0633)
0 address type (0 = memory space, 1 = I/O space)
---memory address---
2-1 address type
00 anywhere in first 4GB
01 below 1MB
10 anywhere in 64-bit address space
11 reserved
3 prefetchable
31-4 bits 31-4 of base memory address if addressable in first 1MB or 4GB
63-4 bits 63-4 of base memory address if addressable in 64-bit memory
(bits 63-32 are stored in the following base address DWORD)
---I/O address---
1 reserved
31-2 bits 31-2 of base I/O port
SeeAlso: #0628,#3330
Bitfields for PCI Configuration Expansion ROM Address:
Bit(s) Description (Table 0634)
0 address decode enable (ROM address is valid)
10-1 reserved
31-11 bits 31-11 of ROM's starting physical address
SeeAlso: #0628
Format of PCI Capabilities List:
Offset Size Description (Table 3325)
00h BYTE capability identifier
01h PCI Power Managment
01h BYTE offset of next item (within configuration space) or 00h
N BYTEs varies by capability type
---PCI Power Management---
02h WORD power managment capabilities (see #3326) (read-only)
04h WORD power managment capabilities status register (see #3327)
06h BYTE PMCSR bridge support extensions (see #3328)
07h BYTE (optional) read-only data register (see #3329)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #0628,#0631
Bitfields for PCI Power Management Capabilities:
Bit(s) Description (Table 3326)
15 reserved (0)
14-12 PME# support
bit 12: PME# can be asserted from power state D0
bit 13: PME# can be asserted from power state D1
bit 14: PME# can be asserted from power state D2
11 reserved (0)
10 D2 power state supported
9 D1 power state supported
8 full-speed clock is required in state D0 for proper operation
(if clear, device may be run at reduced clock except when actually
being accessed)
7-6 dynamic clock control support
00 not bridge, no dynamic clock control, or secondary bus' clock is
is tied to primary bus' clock
01 bridge is capable of dynamic clock control
10 reserved
11 secondary bus has independent clock, but dynamic clock not supported
5 device-specific initialization is required
4-3 reserved (0)
2-0 specification version
001 = v1.0; four bytes of power management registers
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #3325,#3327,#3328
Bitfields for PCI Power Management Capabilities Status Register:
Bit(s) Description (Table 3327)
15 PME status: if set, PME# is (or would be) asserted
writing a 1 to this bit clears it
14-13 (read-only) scale factor to apply to contents of Data register
00 unknown (or unimplemented data)
01 x0.1
10 x0.01
11 x0.001
12-9 (read-write) data select (see #3329)
8 (read-write) enable PME# assertion
7-5 reserved (0)
4 (read-write) enable dynamic data reporting
when set, PME# is asserted whenever the value in the Data register
changes significantly
3-2 reserved (0)
1-0 (read-write) current power state
00 = D0
...
11 = D3
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #3325,#3326,#3328
Bitfields for PCI Power Management PMCSR bridge support extension:
Bit(s) Description (Table 3328)
7 (read-only) Bus Power Control Enable
6 (read-only) Bus Power State B3 supported
5 (read-only) Bus Power State B2 supported
4 dynamic clock control enable
3-0 reserved (0)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #3325,#3326,#3327
(Table 3329)
Values for PCI Power Management Data Select:
00h D0-state power consumed in watts (+20%/-10%)
01h D1-state power consumed in watts (+20%/-10%)
02h D2-state power consumed in watts (+20%/-10%)
03h D3-state power consumed in watts (+20%/-10%)
04h D0-state power dissipated into chassis in watts
05h D1-state power dissipated into chassis in watts
06h D2-state power dissipated into chassis in watts
07h D3-state power dissipated into chassis in watts
08h-0Fh reserved
SeeAlso: #3327
Bitfields for PCI Configuration CardBus CIS Pointer:
Bit(s) Description (Table 0635)
2-0 address space
000 in device's device-specific configuration space
001 in memory pointed to by base address register 0
...
110 in memory pointed to by base address register 5
111 in device's expansion ROM
27-3 offset within address space defined by bits 2-0
31-28 ROM image number
SeeAlso: #0628
Format of CardBus Socket/ExCA socket interface register space:
Offset Size Description (Table 3309)
00h DWORD Socket Event Register (see #3311)
04h DWORD Socket Mask Register (see #3312)
08h DWORD Socket Present State Register (see #3313)
0Ch DWORD Socket Force Event Register (see #3314)
10h DWORD Socket Control Register (see #3315)
14h 3 DWORDs reserved
20h DWORD Socket Power Management Register
90h BYTE (TI PCI1130) Retry Status Register
91h BYTE (TI PCI1130) Card Control Register (see #3316)
92h BYTE (TI PCI1130) Device Control Register (see #3317)
93h BYTE (TI PCI1130) Buffer Control Register
800h 64+ BYTEs ExCa Socket Interface Registers (see #3310)
Format of ExCa memory-mapped registers:
Offset Size Description (Table 3310)
00h BYTE identification and revision register
01h BYTE interface status register
02h BYTE power control register
03h BYTE interrupt and general control
04h BYTE card status change
05h BYTE card status change interrupt configuration
06h BYTE address window enable
07h BYTE I/O window control register
08h WORD I/O window 0 start address
0Ah WORD I/O window 0 end address
0Ch WORD I/O window 1 start address
0Eh WORD I/O window 1 end address
10h WORD memory window 0 start address
12h WORD memory window 0 end address
14h WORD memory window 0 offset address
16h 2 BYTEs user-defined
18h WORD memory window 1 start address
1Ah WORD memory window 1 end address
1Ch WORD memory window 1 offset address
1Eh BYTE user-defined
1Fh BYTE reserved
20h WORD memory window 2 start address
22h WORD memory window 2 end address
24h WORD memory window 2 offset address
26h 2 BYTEs user-defined
28h WORD memory window 3 start address
2Ah WORD memory window 3 end address
2Ch WORD memory window 3 offset address
2Eh 2 BYTEs user-defined
30h WORD memory window 4 start address
32h WORD memory window 4 end address
34h WORD memory window 4 offset address
36h 10 BYTEs user-defined
---optional---
40h BYTE memory window 0 start address high byte
41h BYTE memory window 1 start address high byte
42h BYTE memory window 2 start address high byte
43h BYTE memory window 3 start address high byte
44h BYTE memory window 4 start address high byte
45h-7FFh user-defined
SeeAlso: #3309
Bitfields for CardBus Socket Event Register:
Bit(s) Description (Table 3311)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
31-4 reserved (0)
Note: the bits in this register are set by the bridge, and cleared by writing
a one into the bits one wishes to clear
SeeAlso: #3309,#3312,#3314
Bitfields for CardBus Socket Event Mask Register:
Bit(s) Description (Table 3312)
0 write-protect (enable status-change interrupt on WriteProtect switch)
1 ready mask (allow status-change interrupt on Ready line change)
3-2 battery condition (allow status-change int on battery-condition change)
4 general wakeup enabled
5 binary audio mode enabled on CAUDIO pin
6 Pulse Width Modulation enabled on CAUDIO pin
(CAUDIO state undefined if both bits 5 and 6 set)
13-7 reserved (0)
14 Wakeup mask (enable wakeup events via status-change pin)
15 enable card interrupts via CINT# pin and wakeup events
31-16 reserved
SeeAlso: #3309,#3311,#3313
Bitfields for CardBus Socket Present State Register:
Bit(s) Description (Table 3313)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
4 16-bit PC card inserted
5 CardBus card inserted
6 card's interrupt pin asserted
7 card inserted but type can not be determined
8 data may have been lost due to abrupt card removal
9 attempted to apply Vcc voltage not supported by the card
10 card can accept Vcc = 5.0 volts
11 card can accept Vcc = 3.3 volts
12 card can accept Vcc = X.X volts
13 card can accept Vcc = Y.Y volts
27-14 reserved (0)
28 socket can accept Vcc = 5.0 volts
29 socket can accept Vcc = 3.3 volts
30 socket can accept Vcc = X.X volts
31 socket can accept Vcc = Y.Y volts
Note: bits 0-3 may be cleared by writing a 1 into the respective bits
SeeAlso: #3309,#3311,#3312,#3315
Bitfields for CardBus Socket Force Event Register:
Bit(s) Description (Table 3314)
0 write-protect
1 ready
2 battery voltage detect 2
3 battery voltage detect 1
4 general wakeup
14-5 reserved (0)
15 enable card interrupts via CINT# pin
31-16 reserved
Note: this register can simulate events by forcing the values of some of the
bits in the Event Mask Register; any bit of this register which is
set to 1 forces the corresponding bit in the Mask Register to 1,
while bits set to 0 leave the corresponding bit unchanged
SeeAlso: #3309,#3311,#3315
Bitfields for CardBus Socket Control Register:
Bit(s) Description (Table 3315)
2-0 Vpp control
000 power off
001 12.0 Volts
010 5.0 Volts
011 3.3 Volts
100 reserved (X.X Volts)
101 reserved (Y.Y Volts)
110 reserved
111 reserved
3 reserved (0)
6-4 Vcc control (as for Vpp, but 12.0V not supported)
31-7 reserved (0)
SeeAlso: #3309,#3312,#3314
Bitfields for TI PCI1130 Card Control Register:
Bit(s) Description (Table 3316)
0 interrupt pending
1 speaker output enabled
2 reserved
3 enable status-change interrupt routing (to INTA# for socket A, INTB#
for socket B)
4 function interrupt routed to corresponding PCI interrupt pin
5 PCI interrupts enabled
6 ZOOM video mode enabled
7 Ring Indicator enabled on IRQ15/RI_OUT pin
SeeAlso: #3309,#3317
Bitfields for TI PCI1130 Device Control Register:
Bit(s) Description (Table 3317)
0 reserved (0)
2-1 interrupt mode enable
00 no interrupt
01 ISA mode (direct IRQ routing)
10 serialized interrupt mode
11 reserved
4-3 reserved
5 3volt Socket Capable force bit
6 5volt Socket Capable force bit
7 reserved
SeeAlso: #3309,#3316
Bitfields for PCI Configuration I/O base and limit:
Bit(s) Description (Table 0636)
3-0 (read-only) address decoding type
0000 16-bit
0001 32-bit
other reserved
7-4 bits 15-12 of I/O address range
SeeAlso: #0628,#0637
Bitfields for PCI Configuration memory base and limit:
Bit(s) Description (Table 0637)
3-0 address decode type
0000 32-bit address decoder
0001 64-bit address decoder
other reserved
15-4 bits 31-20 of memory address range
SeeAlso: #0628,#0636
Format of PCI Configuration Data for VLSI VL82C591 Host/PCI bridge:
Offset Size Description (Table 0638)
00h 64 BYTEs header (see #0628)
(device ID 0005h)
40h BYTE bus number
41h BYTE subordinate bus number
42h WORD reserved
44h 4 DWORDs reserved
54h 2 BYTEs device-specific configuration registers
56h WORD reserved
58h 2 BYTEs device-specific configuration registers
5Ah WORD reserved
5Ch 5 BYTEs device-specific configuration registers
...
FFh BYTE device-specific configuration register
SeeAlso: #0628,#0629,#0639
Format of PCI Configuration data for VLSI VL82C593 PCI/ISA bridge:
Offset Size Description (Table 0639)
00h 64 BYTEs header (see #0628)
(device ID 0006h)
40h 4 DWORDs reserved
50h 11 BYTEs device-specific configuration registers
5Bh BYTE reserved
5Ch 25 BYTEs device-specific configuration registers
75h 138 BYTEs reserved
FFh BYTE device-specific configuration register
SeeAlso: #0628,#0638
Format of PCI Configuration data for Intel 82434 Cache/DRAM Controller:
Offset Size Description (Table 0640)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 04A3h)
40h 16 BYTEs unused (hard-wired to 00h)
50h BYTE secondary (L2) cache control???
bit 0: ???
bit 1: ???
bit 2: enable L2 cache
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
(only bits 7-6 writable, bits 5-0 hardwired to 0)
52h BYTE ???
bits 6-7: ???
bit 1: ???
bit 0: ???
53h BYTE ???
54h BYTE ???
bit 2: ???
55h 2 BYTEs ???
57h BYTE DRAM Control???
bit 3: ???
58h BYTE DRAM Timing???
bit 0:
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 6 BYTEs DRAM Row Boundary registers 0-5
each register N indicates the amount of cumulative amount of
memory in SIMM banks 0-N, in multiples of 1M; offset 65h
contains the total amount of memory installed in the system
66h 2 BYTEs ??? (set to same value as 65h)
68h BYTE DRAM Row Type???
69h 3 BYTEs ???
6Ch DWORD unused??? (apparently hardwired to 00000000h)
70h BYTE ???
bits 1-0: ???
71h BYTE ???
bit 3: ???
72h BYTE System Management RAM control (see also #3404)
bits 2-0: ???
bit 5: map SMM-mode memory (64K) into address space when bits
2-0 = 010 (default 3000h:0000h; can be changed by
first SMM event)
73h 5 BYTEs ???
78h WORD ???
7Ah 2 BYTEs ???
7Ch DWORD ???
bit 13: byte merging enabled
80h 128 BYTEs unused???
Note: the 82434 is part of the Intel Neptune chipset
SeeAlso: #0642,#0643
Format of PCI Configuration data for Intel 82424 Cache Controller:
Offset Size Description (Table 0641)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 0483h)
40h BYTE bus number
41h BYTE subordinate bus number
42h BYTE disconnect timer
50h BYTE host CPU selection
51h BYTE deturbo frequency control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h BYTE secondary cache control
53h BYTE write buffer control
54h BYTE PCI features control
55h BYTE DRAM Operation Mode Select
56h BYTE System Exception Handling
57h BYTE SMM Control Register
58h BYTE reserved
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see also #3401)
60h 4 BYTEs DRAM Row Boundary registers 0-3
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide)
boundary register 3 (offset 63h) contains the total system
memory, which may not exceed 128M
64h 4 BYTEs unused???
68h WORD Memory Hole-0
6Ah WORD Memory Hole-1
Note: the above field names are those given by EduWARE's PCI Configuration
Manager v1.2
SeeAlso: #0640,#0643,#3392
Format of PCI Configuration data for Intel 82378 and 82379 ISA Bridges:
Offset Size Description (Table 0642)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 0484h)
(revision ID:
bits 7-4: reserved
bits 3-0: revision
0011 82378ZB A0-step
1000 82379AB A0-step)
40h BYTE PCI Control (see #3331)
41h BYTE PCI Arbiter Control (see #3332)
42h BYTE PCI Arbiter Priority Control (see #3333)
43h BYTE (82378ZB) PCI Arbiter Priority Control Extension Register
bit 0: bank 3 fixed priority mode select (see also #3333)
=0 REQ2# has higher priority
=1 REQ3# has higher priority
44h BYTE MEMCS# Control (see #3334)
45h BYTE MEMCS# Bottom of Hole (address bits 23-16)
46h BYTE MEMCS# Top of Hole (address bits 23-16)
47h BYTE MEMCS# Top of Memory (address bits 28-21 == size in 2M incr.)
48h BYTE ISA Address Decoder Control (see #3335)
49h BYTE ISA Address Decoder ROM Block Enable (see #3336)
4Ah BYTE ISA Address Decoder Bottom of Hole (address bits 23-16)
4Bh BYTE ISA Address Decoder Top of Hole (address bits 23-16)
4Ch BYTE ISA Controller Recovery Time (see #0647)
4Dh BYTE ISA Clock Divisor (see #3337)
4Eh BYTE Utility Bus Chip Select Enable A (see #3338)
4Fh BYTE Utility Bus Chip Select Enable B (see #3339)
50h 4 BYTEs reserved
54h BYTE MEMCS# Attribute Register #1 (see #3340)
attributes for 16K blocks from C0000h-CFFFFh
55h BYTE MEMCS# Attribute Register #2 (see #3340)
attributes for 16K blocks from D0000h-DFFFFh
56h BYTE MEMCS# Attribute Register #3 (see #3340)
attributes for 16K blocks from E0000h-EFFFFh
57h BYTE (82378) Scatter/Gather Relocation Base Adress (see #3341)
(82379AB) reserved
58h 8 BYTEs reserved
60h BYTE (82378ZB) IRQ0# Route Control (see #3342)
61h BYTE (82378ZB) IRQ1# Route Control (see #3342)
62h BYTE (82378ZB) IRQ2# Route Control (see #3342)
63h BYTE (82378ZB) IRQ3# Route Control (see #3342)
64h 12 BYTEs reserved
70h BYTE (82378) reserved
(82379AB, write-only) PIC/APIC Configuration Control
(see #3343)
71h BYTE (82378) reserved
(82379AB, write-only) APIC Base Address Relocation
(see #3344,MEM FEC00000h)
72h 14 BYTEs reserved
80h WORD BIOS timer base address (see PORT 0078h)
bits 15-2 are bits 15-2 of BIOS timer port address
bit 1: reserved (0)
bit 0: timer enabled (if disabled, other bits ignored)
82h 30 BYTEs unused???
A0h BYTE SMI Control (see #3345)
A1h BYTE reserved
A2h WORD SMI Enable (see #3346)
A4h DWORD System Event Enable (SEE) (see #3347)
A8h BYTE Fast-Off Timer (in minutes)
A9h BYTE reserved
AAh WORD SMI Request (see #3348)
ACh BYTE (82378ZB) Clock Throttle STPCLK# Low Timer
duration of STPCLK# low period in 32 microsecond units
ADh BYTE reserved
AEh BYTE (82378ZB) Clock Throttle STPCLK# High Timer
duration of STPCLK# high period in 32 microsecond units
AFh 81 BYTEs reserved
SeeAlso: #0640,#3410,PORT 040Ah"82378ZB"
Bitfields for Intel 82378/82379 PCI Control:
Bit(s) Description (Table 3331)
7 reserved (0)
6 DMA Reserved Page Register Aliasing Control
=0 alias PORT 80h-8Fh to PORT 90h-9Fh
5 Interrupt Acknowledge Enable
=0 ignore INTA cycles on the PCI bus, but still allow 8259 register
access and poll-mode functions
4-3 Subtractive Decoding Sample Point
00 slow sample point
01 typical
10 fast sample point
11 reserved
2 PCI Posted Write Buffer Enable
1 ISA Master Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode for ISA bus master transfers
0 DMA Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode
SeeAlso: #0642,#3332
Bitfields for Intel 82378/82379 PCI Arbiter Control:
Bit(s) Description (Table 3332)
7-5 reserveed (0)
4-3 Master Retry Timer
00 disabled (retries never masked)
01 retries unmasked after 16 PCICLKs
10 retries unmasked after 32 PCICLKs
11 retries unmasked after 64 PCICLKs
2 Bus Park
=1 park CPUREQ# on PCI bus when 82378 detects PCI bus idle
1 Bus Lock
=0 resource lock
=1 Bus lock
0 Guaranteed Access Time
=1 ISA bus masters are guaranteed 2.5 microsecond CHRDY time-out
SeeAlso: #0642,#3331
Bitfields for Intel 82378/82379 PCI Arbiter Priority Control:
Bit(s) Description (Table 3333)
7 bank 3 rotate control
6 bank 2 rotate control
5 bank 1 rotate control
4 bank 0 rotate control
3 bank 2 fixed priority mode select B
2 bank 2 fixed priority mode select A
1 bank 1 fixed priority mode select
0 bank 0 fixed priority mode select
Note: if both 'rotate' and 'fixed' bits are set for a given bank,
that bank will be in rotating-priority mode
SeeAlso: #0642,#3332
Bitfields for Intel 82378/82379 MEMCS# Control Register:
Bit(s) Description (Table 3334)
7-5 reserved (0)
4 MEMCS# Master Enable
3 write enable for 0F0000h-0FFFFFh
2 read enable for 0F0000h-0FFFFFh
1 write enable for 080000h-09FFFFh
0 read enable for 080000h-09FFFFh
SeeAlso: #0642
Bitfields for Intel 82378/82379 ISA Address Decoder Control Register:
Bit(s) Description (Table 3335)
7-4 ISA memory cycle forwarding to PCI
0000-1111 = 1M-16M top of ISA memory; any accesses above programmed
limit are forwarded to PCI bus
3-0 ISA/DMA memory cycle to PCI bus enables
bit 3: 896K-960K (E000h-EFFFh)
bit 2: 640K-768K (A000h-BFFFh)
bit 1: 512K-640K (8000h-9FFFh)
bit 0: 0K-512K (0000h-7FFFh)
SeeAlso: #0642,#3336
Bitfields for Intel 82378/82379 ISA Address Decoder ROM Block Enable:
Bit(s) Description (Table 3336)
7 enable 880K-896K (EC00h-EFFFh)
6 enable 864K-880K (E800h-EBFFh)
5 enable 848K-864K (E400h-E7FFh)
4 enable 832K-848K (E000h-E3FFh)
3 enable 816K-832K (DC00h-DFFFh)
2 enabel 800K-816K (D800h-DBFFh)
1 enable 784K-800K (D400h-D7FFh)
0 enable 768K-784K (D000h-D3FFh)
Note: ISA accesses within any enabled ranges are forwarded to the PCI bus
SeeAlso: #0642,#3335
Bitfields for Intel 82378/82379 ISA Clock Divisor Register:
Bit(s) Description (Table 3337)
7 reserved (0)
6 enable positive decode of upper 64K BIOS at 000F0000h-000FFFFFh,
FFEF0000h-FFEFFFFFh, and FFFF0000h-FFFFFFFFh
5 coprocessor error enable
=1 FERR# is driven onto IRQ13
4 IRQ12/Mouse Function Enable
=0 standard IRQ12
=1 mouse
3 RSTDRV enable
=1 assert RSTDRV until this bit cleared (for use in changing ISA bus
speed)
2-0 PCICLK-to-ISA SYSCLK divisor
000 4
001 3
other reserved
SeeAlso: #0642,#3335
Bitfields for Intel 82378/82379 Utility Bus Chip Select A Register:
Bit(s) Description (Table 3338)
7 extended BIOS enable (decode accesses to FFF80000h-FFFDFFFFh)
6 lower BIOS enable (decode accesses to E0000h-EFFFFh,
FFEE0000h-FFEEFFFFh, and FFFE0000h-FFFEFFFFh)
5 (82378ZB) floppy disk primary/secondary address select
=1 use secondary address range
4 (82378ZB) IDE Decode enable
3,2 floppy disk address locations enable
1 keyboard controller address location enable
enables I/O addresses 60h,62h,64h,66h (82378ZB) or 60h/64h (82379AB)
0 RTC address location enabled
=1 enable decode of I/O ports 70h-77h
SeeAlso: #0642,#0649,#3339
Bitfields for Intel 82378ZB/82379 Utility Bus Chip Select B Register:
Bit(s) Description (Table 3339)
7 configuration RAM decode enable
=1 permit write accesses to I/O port 0C00h and r/w to ports 08xxh
6 enable PORT 0092h
5-4 parallel port enable
00 LPT1 (ports 03BCh-03BFh)
01 LPT2 (ports 0378h-037Fh)
10 LPT3 (ports 0278h-027Fh)
11 disabled
3-2 serial port B enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port B disabled
1-0 serial port A enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port A disabled
Note: if both serial ports are set to the same address, port B is disabled
SeeAlso: #0642,#3338,PORT 0092h
Bitfields for Intel 82378/82379 MEMCS# Attribute Register 1/2/3:
Bit(s) Description (Table 3340)
7 write-enable xC000h-xFFFFh expansion ROM
6 read-enable xC000h-xFFFFh expansion ROM
5 write-enable x8000h-xBFFFh expansion ROM
4 read-enable x8000h-xBFFFh expansion ROM
3 write-enable x4000h-x7FFFh expansion ROM
2 read-enable x4000h-x7FFFh expansion ROM
1 write-enable x0000h-x3FFFh expansion ROM
0 read-enable x0000h-x3FFFh expansion ROM
Note: x = C/D/E depending on the attribute register
SeeAlso: #0642
Bitfields for Intel 82378ZB Scatter Gather Relocation Base Address:
Bit(s) Description (Table 3341)
(no details in Intel documentation)
SeeAlso: #0642,#3340,#3342,PORT 040Ah"82378ZB"
Bitfields for Intel 82378/82379 PCI IRQ Route Control Register:
Bit(s) Description (Table 3342)
7 disable IRQ routing
6-4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Note: IRQs 0-2, 8, and 13 are reserved
SeeAlso: #0642,#3410
Bitfields for Intel 82379AB PIC/APIC Configuration Control Register:
Bit(s) Description (Table 3343)
7-2 reserved
1 SMI Routing Control
=1 SMI via APIC
=0 SMI via SMI# signal
0 INT Routing Control
=1 INT disabled (requires that APIC be enabled)
=0 INT enabled
SeeAlso: #0642,#3344
Bitfields for Intel 82379AB/82371 APIC Base Address Relocation:
Bit(s) Description (Table 3344)
7 reserved
6 (82379AB) reserved
6 (82371) A12 mask
=1 ignore address bit 12 in APIC address
5-0 bits 15-10 of APIC memory address (ORed with FEC00000h to form base
address)
SeeAlso: #0642,#3410,#3343,MEM FEC00000h
Bitfields for Intel 82378/82379 SMI Control Register:
Bit(s) Description (Table 3345)
7 reserved
6 (82378) reserved
(82379) require Stop Grant bus cycle before asserting STPCLK#
5-4 reserved
3 Fast-Off Timer freeze
2 STPCLK# scaling enable
=1 enable Clock Throttle bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #0642,#3346,#3347,#3421,PORT 00B2h
Bitfields for Intel 82371/82378/82379 SMI Enable Register:
Bit(s) Description (Table 3346)
15-9 reserved
8 (82371SB only) Legacy USB SMI enable
7 APMC Write SMI enable
=1 generate SMI on write to PORT 00B2h
6 EXTSMI# SMI enable
5 Fast-Off Timer SMI enable
4 IRQ12 (PS/2 mouse) SMI enable
3 IRQ8 (RTC alarm) SMI enable
2 IRQ4 (COM1/COM3) SMI enable
1 IRQ3 (COM2/COM4) SMI enable
0 IRQ1 (keyboard) SMI enable
SeeAlso: #0642,#3345,#3347,#3410,PORT 00B2h
Bitfields for Intel 82371/82378/82379 System Event Enable Register:
Bit(s) Description (Table 3347)
31 Fast-Off SMI enable (system and break events)
30 (82379 only) Fast-Off Interrupt Enable (break events only)
30 (82371 only) INTR enable (break events only)
29 Fast-Off NMI enable (system and break events)
28 (82371SB only) Fast-Off APIC enable (break events only)
27 (82379 only) Fast-Off COM enable (system events only)
26 (82379 only) Fast-Off LPT enable (system events only)
25 (82379 only) Fast-Off Drive enable (system events only)
24 (82379 only) Fast-Off DMA enable (system events only)
23-16 reserved
15-3 Fast-Off IRQ (15-3) enable (system and break events)
2 reserved
1-0 Fast-Off IRQ (1-0) enable (system and break events)
Note: any enabled system event restarts the Fast-Off Timer, thus preventing
a Fast-Off powerdown; any enabled break event awakens the system from
powerdown
SeeAlso: #0642,#3345,#3346,#3348,#3410
Bitfields for Intel 82371/82378/82379 SMI Request Register:
Bit(s) Description (Table 3348)
15-9 reserved
8 (82371SB only) Legacy USB SMI status
7 APM SMI Status (write to PORT 00B2h triggered SMI)
6 EXTSMI# SMI Status (EXTSMI# line triggered SMI)
5 Fast-Off Timer expired
4 IRQ12 triggered SMI
3 IRQ8 triggered SMI
2 IRQ4 triggered SMI
1 IRQ3 triggered SMI
0 IRQ1 triggered SMI
Note: software must explicitly reset the appropriate bits
SeeAlso: #0642,#3347,#3410
Format of PCI Configuration data for Intel 82425EX PSC:
Offset Size Description (Table 0643)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 0486h)
40h BYTE PCI control register (see #0644)
41h 3 BYTEs ???
44h BYTE host device control register (see #0645)
45h 3 BYTEs ???
48h WORD PCI local-bus IDE control register (see #0646)
4Ah 2 BYTEs ???
4Ch BYTE ISA I/O recovery timer register (see #0647)
4Dh BYTE part revision register (see #0648)
4Eh BYTE X-bus Chip Select A register (see #0649)
4Fh BYTE X-bus Chip Select B register???
50h BYTE host select register
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h WORD secondary (L2) cache control register
54h 2 BYTEs ???
56h WORD DRAM control register
58h BYTE ???
59h 7 BYTEs Programmable Attribute Map (PAM) registers 0-6 (see also #3401)
60h 5 BYTEs DRAM row boundary registers 0-4
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h BYTE ???
66h BYTE PIRQ route control register 0
67h BYTE PIRQ route control register 1
68h BYTE DRAM memory hole register
69h BYTE top of memory
6Ah 6 BYTEs ???
70h BYTE SMRAM control register
71h 47 BYTEs unused???
A0h BYTE SMI control register
A1h BYTE ???
A2h WORD SMI enable register
A4h DWORD system event enable
A8h BYTE fast off timer register
A9h BYTE ???
AAh WORD SMI request register
ACh BYTE clock throttle STPCLK# low timer
ADh BYTE unused???
AEh BYTE clock throttle STPCLK# high timer
AFh BYTE ???
B0h 80 BYTEs unused???
SeeAlso: #0628,#0641,#0640,#3392,#3410
Bitfields for Intel 82425EX PCI control register:
Bit(s) Description (Table 0644)
0 CPU-to-PCI byte merging
1 CPU-to-PCI bursting enable
2 PCI posted-write buffer enable
4-3 subtractive decode sampling point
00 slow
01 typical
10 fast
11 reserved
5 DRAM parity error enable
6 target abort error enable
7 reserved
SeeAlso: #0643,#0645,#0646,#0647
Bitfields for Intel 82425EX host device control register:
Bit(s) Description (Table 0645)
0 HRDY# maximum signal sampling point
0 slow timing
1 fast timing
1 HDEV# signal sampling point
0 slow timing
1 fast timing
2 host device present
7-3 reserved
SeeAlso: #0643,#0644
Bitfields for Intel 82425EX local-bus IDE control register:
Bit(s) Description (Table 0646)
1-0 primary/secondary PCI IDE enable
00 IDE disabled
01 primary (ports 01F0h-01F7h,03F6,03F7h)
10 secondary (ports 0170h-017Fh,0376h,0377h)
11 reserved
3-2 fast timing bank drive select 1
bit 2 = drive 0 enabled
bit 3 = drive 1 enabled
5-4 IORDY sample point Enable Drive Select
bit 4 = drive 0 enabled
bit 5 = drive 1 enabled
7-6 reserved
9-8 IORDY sample point
00 6 clocks
01 5 clocks
10 4 clocks
11 3 clocks
12-10 recover time (000 = 8 PCI clocks, 001 = 7, ..., 101 = 3, 110/111 = 3)
15-13 reserved
SeeAlso: #0643,#0644
Bitfields for Intel chipset ISA I/O recovery timer register:
Bit(s) Description (Table 0647)
1-0 16-bit I/O recovery time
00 = 4 SYSCLKs
01-11 = 1-3 SYSCLKs
2 16-bit I/O recovery enable
5-3 8-bit I/O recovery time
000 = 8 SYSCLKs
001-110 = 1-7 SYSCLKs
6 8-bit I/O recovery enable
7 (82425EX/82371) DMA reserved page register aliasing disable
=0 ports 0090h-009Fh alias ports 0080h-008Fh
=1 ports 0090h-009Fh forwarded to ISA bus
SeeAlso: #0642,#0643,#0644,#3410
Bitfields for Intel 82425EX part revision register:
Bit(s) Description (Table 0648)
7-5 fabrication house identifier (read-only)
4 E0000h-EFFFFh ISA-to-main-memory forwarding enabled
3-0 revision ID (read-only)
SeeAlso: #0643,#0649
Bitfields for Intel 82425EX/82371 X-bus Chip Select A register:
Bit(s) Description (Table 0649)
7 extended BIOS enabled at FFF80000h-FFFDFFFFh
6 lower (E000h) BIOS enabled
5 trigger IRQ13 on FERR#
4 IRQ12 mouse function enabled
3 reserved (0)
2 BIOS memory write protect
1 keyboard controller addresses (60h,62h,64h,66h) enabled
0 RTC addresses (70h-77h) enabled
SeeAlso: #0643,#3410,#0648
Format of PCI Configuration Data for Intel 82439HX:
Offset Size Description (Table 3407)
00h 64 BYTEs header (see #0628)
(vender ID 8086h, device ID 1250h)
(revision ID 00h = A0 stepping)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #3394)
51h BYTE reserved
52h BYTE cache control (see #3395)
53h 3 BYTEs reserved
56h BYTE DRAM extended control (see #3398)
57h BYTE DRAM control (see #3399)
58h BYTE DRAM timing (see #3400)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 8 BYTEs DRAM Row Boundary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 4M units
68h BYTE DRAM Row Type (see #3402)
bits 0-7 indicate whether each row 0-7 contains EDO DRAM
instead of page-mode DRAM
69h BYTE ???
6Ah 8 BYTEs reserved
72h BYTE System Management RAM control (see #3404)
73h 29 BYTEs reserved
90h BYTE Error Command (see #3408)
91h BYTE Error Status (see #3409) (read-only)
92h BYTE Error Syndrome (read-only)
latest non-zero ECC error syndrome
93h 109 BYTEs reserved
SeeAlso: #3392,#3424
Format of PCI Configuration Data for Intel 82437MX:
Offset Size Description (Table 3435)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 1235h)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #3436)
51h BYTE reserved
52h BYTE cache control (see #3395)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #3399)
58h BYTE DRAM timing (see #3400)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 4 BYTEs DRAM Row Boundary Registers 0-3
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
64h 4 BYTEs reserved
68h BYTE DRAM Row Type (see #3437)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #3404)
73h 141 BYTEs reserved
SeeAlso: #3392,#3438
Format of PCI Configuration Data for Intel 82437FX:
Offset Size Description (Table 3438)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 0122h) (see #3308)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #3436)
51h BYTE reserved
52h BYTE cache control (see #3395)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #3399)
58h BYTE DRAM timing (see #3400)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 5 BYTEs DRAM Row Boundary Registers 0-4
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
65h 3 BYTEs reserved
68h BYTE DRAM Row Type (see #3437)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #3404)
73h 141 BYTEs reserved
SeeAlso: #3435,#3392
Format of PCI Configuration Data for Intel 82437VX:
Offset Size Description (Table 3392)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 7030h)
(revision ID 00h = A0 stepping)
40h 15 BYTEs reserved
4Fh BYTE arbitration control (see #3393)
50h BYTE PCI Control (see #3394)
51h BYTE reserved
52h BYTE cache control (see #3395)
53h BYTE cache control extensions (see #3396)
54h WORD SDRAM control (see #3397)
55h BYTE reserved
56h BYTE DRAM extended control (see #3398)
57h BYTE DRAM control (see #3399)
58h BYTE DRAM timing (see #3400)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 5 BYTEs DRAM Row Boundary registers 0-4
each register N indicates amount of memory in rows 0-N in 4M
units (each row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h 2 BYTEs reserved
67h BYTE DRAM Row Type (high)
defines memory type in DRAM row 4 in bits 4,0 (see #3402)
68h BYTE DRAM Row Type (low) (see #3402)
69h BYTE PCI TRDY timer (see #3403)
6Ah 6 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82437 will grant the bus to another PCI agent on request
71h BYTE reserved
72h BYTE System Management RAM control (see #3404)
73h BYTE shared memory buffer control (see #3405)
74h BYTE shared memory buffer start address, in 0.5MB units
end address is top-of-memory at offset 64h or start of an
enabled PCI memory hole when top-of-memory is 16M
76h 2 BYTEs reserved
78h BYTE graphics controller latency timers (see #3406)
79h 135 BYTEs reserved
SeeAlso: #3308,#0641,#0643,#3407,#3435
Bitfields for Intel 82437VX arbitration control:
Bit(s) Description (Table 3393)
7 extended CPU-to-PIIX PHLDA# signalling enabled
6-4 reserved
3 CPU priority enable
=1 CPU gets PCI bus after two PCI slots
=0 CPU gets PCI bus after three PCI slots
2-0 reserved
SeeAlso: #3392,#3394
Bitfields for Intel 82437VX/82439HX PCI Control register:
Bit(s) Description (Table 3394)
7-4 reserved (82437VX)
7 DRAM ECC/Parity Select (82439HX)
=1 ECC
=0 parity
6 ECC TEST enable (82439HX)
5 shutdown to port 92h (82439HX)
=1 send 01h to PORT 0092h on Shutdown special cycle on host bus
4 dual-processor NA# enable (82439HX)
3 PCI Concurrency Enable
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2 SERR# Output Type (82439HX only)
=1 SERR# is actively driven high when negated
=0 SERR# is PCI-compatible open-drain output
1 reserved
0 Global TXC Enable (82439HX only)
=1 enable new 82439HX features
SeeAlso: #3392,#3407,#3395,#3436
Bitfields for Intel 82437FX/82437MX PCI Control register:
Bit(s) Description (Table 3436)
7-5 CPU inactivity timer (in PCI Clocks less 1)
4 reserved
3 enable PCI Peer Concurrency
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2 disable PCI Bursting
1 disable PCI Streaming
0 disable Bus Concurrency
SeeAlso: #3435,#3438,#3394
Bitfields for Intel 82437/82439HX cache control register:
Bit(s) Description (Table 3395)
7-6 secondary cache size
00 none
01 256K
10 512K
11 reserved
5-4 L2 RAM type
00 pipelined burst SRAM/DRAM
01 reserved
10 asynchronous SRAM (82437FX/MX/VX only)
11 two banks of pipelined burst cache
3 NA disable
=1 never assert NA# pin
2 reserved (82437FX/82437MX/82437VX)
2 Extended Cacheability Enable (82439HX)
=1 cache up to 512M
=0 cache only first 64M
1 Secondary Cache Force Miss or Invalidate
=1 force all memory accesses to bypass L2 cache
0 First Level Cache Enable
=1 all memory accesses made non-cacheable by CPU L1 cache
SeeAlso: #3392,#3407,#3394,#3396,#3397,#3435
Bitfields for Intel 82437VX cache control extensions register:
Bit(s) Description (Table 3396)
7-6 reserved
5 DRAM cache detected (read-only)
4-0 DRAM cache refresh timer
number of HCLKs 82437VX remains idle during DRAM cache refresh
SeeAlso: #3392,#3395
Bitfields for Intel 82437VX SDRAM control register:
Bit(s) Description (Table 3397)
15-9 reserved
8-6 Special SDRAM Mode Select
000 normal mode (default)
001 enable NOP command
010 enable All Banks Precharge command
011 enable Mode Register Command
100 enable CBR Cycle
101 reserved
11x reserved
5 reserved
4 CAS# latency
=1 latency is 2 for all SDRAM cycles
=0 latency is 3
3 RAS# precharge and refresh timing
=0 slower
=1 faster
2-0 reserved
SeeAlso: #3392,#3395
Bitfields for Intel 82437VX/82439HX DRAM extended control register:
Bit(s) Description (Table 3398)
7 reserved
6 (82437VX) refresh RAS# assertion length (0=4 clocks, 1=5 clocks)
5 (82437VX) Fast EDO Path Select
4 Speculative Leadoff Disable
3 (82439HX) Turn-Around Insertion Enable
=1 insert one extra clock of turnaround time after asserting MWE#
2-1 Memory Address Drive Strength
82437VX: 82439HX:
00 reserved 00 8mA
01 10mA (default) 01 8mA/12mA (MAA/MWE#)
10 16mA 10 12mA/8mA (MAA/MWE#)
11 reserved 11 12mA
0 (82437VX) DRAM Symmetry Detect Mode
(used to force some memory address lines to fixed value for detecting
DRAM symmetry row-by-row)
0 (82439HX) 64MBit Mode Enable
=1 enable support for 64M SIMMs
SeeAlso: #3392,#3407,#3399
Bitfields for Intel 82437/82439HX DRAM control register:
Bit(s) Description (Table 3399)
7-6 DRAM Hole Enable
00 none
01 512K-640K
10 15M-16M (82437FX/MX/VX only)
11 14M-16M (82437VX only)
5 reserved
4 (82437MX only) refresh type during Suspend
=1 self-refreshing DRAMs in system
=0 CAS-before-RAS refresh
3 EDO Detect Mode enable
(used to detect whether memory is EDO bank-by-bank)
2-0 DRAM refresh rate
FX/VX/HX MX
000 disabled 15.6 us
001 50 MHz 31.2 us
010 60 MHz 62.4 us
011 66 MHz 125 us
100 reserved 250 us
1xx reserved reserved
SeeAlso: #3392,#3407,#3398,#3435
Bitfields for Intel 82437FX/82437MX/82437VX/82439HX DRAM timing register:
Bit(s) Description (Table 3400)
7 (82437FX) reserved
7 (82437MX) MA[11:2] buffer strength
=0 8mA
=1 12mA
7 (82437VX) MA-to-RAS# Delay
=1 one clock
=0 two clocks
7 (82439HX) Turbo Read Leadoff
=1 bypass first register in DRAM data pipeline, saving one clock
(may only be set in a cacheless configuration)
6-5 DRAM Read Burst Timing
00 x444 (EDO and Standard Page Mode)
01 x333 (EDO), x444 (SPM)
10 x222 (EDO), x333 (SPM)
11 x322 (EDO), x333 (SPM) (82437VX only)
11 reserved (other)
4-3 DRAM Write Burst Timing
00 x444
01 x333
10 x222
11 reserved
2 RAS-to-CAS Delay
=1 two clocks
=0 three clocks
1-0 DRAM Leadoff Timing
82437VX Read Leadoff Write Leadoff RAS# Precharge
00 11 7 3
01 10 6 3
10 11 7 4
11 10 6 4
82437FX/MX Read Lead Write Leadoff RAS# Precharge
00 8 6 3
01 7 5 3
10 8 6 4
11 7 5 4
82437VX Read Leadoff Write Leadoff RAS# Precharge
00 7 6 3
01 6 5 3
10 7 6 4
11 6 5 4
SeeAlso: #3392,#3399,#3435,#3438
Bitfields for Intel 82437/82439HX Programmable Attribute Register:
Bit(s) Description (Table 3401)
7 reserved
6 cache enable (region 1)
5 write enable (region 1)
4 read enable (region 1)
3 reserved
2 cache enable (region 0)
1 write enable (region 0)
0 read enable (region 0)
Notes: each programmable attribute map register controls two memory
regions at the top of the first megabyte of memory
for the Intel 82441FX, bits 6 and 2 are reserved, as cacheability is
set using the Pentium Pro's MTRR registers (see MSR 000000FEh)
Intel 82437FX/82437MX/82437VX/82439HX/82441FX PAM registers/regions:
PAM0 low: reserved
PAM0 hi: segment F000-FFFF
PAM1 low: segment C000-C3FF
PAM1 hi: segment C400-C7FF
PAM2 low: segment C800-CBFF
PAM2 hi: segment CC00-CFFF
PAM3 low: segment D000-D3FF
PAM3 hi: segment D400-D7FF
PAM4 low: segment D800-DBFF
PAM4 hi: segment DC00-DFFF
PAM5 low: segment E000-E3FF
PAM5 hi: segment E400-E7FF
PAM6 low: segment E800-EBFF
PAM6 hi: segment EC00-EFFF
SeeAlso: #3392,#3407,#3424,#3435,#3438
Bitfields for Intel 82437VX DRAM Row Type register:
Bit(s) Description (Table 3402)
7,3 row 3 type
6,2 row 2 type
5,1 row 1 type
4,0 row 0 type
00 SPM DRAM
01 EDO DRAM
10 SDRAM
11 reserved
SeeAlso: #3392,#3401
Bitfields for Intel 82437FX/82437MX DRAM Row Type register:
Bit(s) Description (Table 3437)
7-4 reserved
3-0 DRAM Row N is EDO instead of page-mode DRAM
SeeAlso: #3435,#3438
Bitfields for Intel 82437VX PCI TRDY timer:
Bit(s) Description (Table 3403)
7-3 reserved
2-0 TRDY timeout value
000 2 PCICLKs
001 4 PCICLKs
010 6 PCICLKs
011 8 PCICLKs
1xx reserved
SeeAlso: #3392,#3404
Bitfields for Intel 82437/82439HX System Management RAM control register:
Bit(s) Description (Table 3404)
7 reserved
6 SMM Space Open
=1 make SMM DRAM visible even when not in SMM if bit 4 =0
5 SMM Space Closed
=1 no data references permitted to SMM DRAM even in SMM
4 SMM Space Locked
=1 force bits 4 and 6 to become read-only; and clear bit 6
3 SMRAM Enable
=1 128K DRAM are accessible for use at A000 while in SMM
2-0 SMM Space Base Segment
010 segment A000-BFFF
100 segment C000-CFFF (82437MX only)
other reserved
Note: bits 5 and 6 must never both be set at the same time
SeeAlso: #3392,#3407,#3405,#3435,#3438
Bitfields for Intel 82437VX Shared Memory Buffer control register:
Bit(s) Description (Table 3405)
7-2 reserved
1 enable shared memory buffer
0 redirect shared memory buffer access
=0 treat SMB area as a hole in system DRAM
SeeAlso: #3392,#3404,#3406
Bitfields for Intel 82437VX Graphics Controller Latency Timer:
Bit(s) Description (Table 3406)
7-6 reserved
5-3 GC latency for PCI reads (in 4 HCLK multiples) (default=100)
2-0 GC latency for CPU and PCI writes (in 4 HCLK multiples) (default=011)
SeeAlso: #3392,#3405
Bitfields for Intel 82439HX Error Command register:
Bit(s) Description (Table 3408)
7 SERR# duration
=0 one PCI clock
=1 until error flags are cleared
6-3 reserved
2 force bad parity on multiple-bit uncorrectable error
1 assert SERR# on multiple-bit uncorrectable error
0 assert SERR# on single-bit correctable error
SeeAlso: #3407,#3409
Bitfields for Intel 82439HX Error Status register:
Bit(s) Description (Table 3409)
7-5 DRAM row associated with multi-bit error
4 multi-bit uncorrectable error occurred (write 1 bit to clear)
3-1 DRAM row associated with single-bit correctable error
0 single-bit correctable error occurred (write 1 bit to clear)
SeeAlso: #3407,#3408
Format of PCI Configuration for Intel 82371FB/82371SB Function 0 (ISA Bridge):
Offset Size Description (Table 3410)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 122Eh/7000h)
(revision ID 00h = 82371SB step A-1)
(revision ID 01h = 82371SB step B-0)
40h 12 BYTEs reserved
4Ch BYTE ISA I/O Controller Recovery Timer (see #0647)
4Dh BYTE reserved
4Eh BYTE X-Bus Chip Select Enable (see #0649)
4Fh BYTE (82371SB) X-Bus Chip Select Enable High
bit 0: I/O APIC enabled
4Fh BYTE (82371FB) reserved
50h 16 BYTEs reserved
60h 4 BYTEs PCI IRQ Route Control (see #3342)
64h 5 BYTEs reserved
69h BYTE top of memory (see #3415)
6Ah WORD miscellaneous status (see #3416)
6Ch 4 BYTEs reserved
70h BYTE motherboard IRQ Route Control 0 (see #3417)
71h BYTE (82371FB) motherboard IRQ Route Control 1 (see #3417)
72h 4 BYTEs reserved
76h 2 BYTEs motherboard DMA control (see #3418)
78h WORD programmable chip select control (see #3419)
7Ah 6 BYTEs reserved
80h BYTE (82371SB) APIC Base Address Relocation (see #3344)
81h BYTE reserved
82h BYTE (82371SB) Deterministic Latency Control (see #3420)
83h 29 BYTEs reserved
A0h BYTE SMI Control (see #3421)
A1h BYTE reserved
A2h WORD SMI Enable (see #3346)
A4h DWORD System Event Enable (SEE) (see #3347)
A8h BYTE Fast-Off Timer (in minutes, PCICLKs, or milliseconds)
value is count less one; timer must be stopped before
changing its value
A9h BYTE reserved
AAh WORD SMI Request (see #3348)
ACh BYTE Clock Scale STPCLK# Low Timer
STPCLK# stays low for 1+1056*(value+1) PCICLKs
ADh BYTE reserved
AEh BYTE Clock Scale STPCLK# High Timer
STPCLK# stays high for 1+1056*(value+1) PCICLKs
AFh 81 BYTEs reserved
SeeAlso: #3411,#3414,#0642,#0643,#3392,#3407
Format of PCI Configuration for Intel 82371FB/82371SB Function 1 (IDE):
Offset Size Description (Table 3411)
00h 64 BYTEs header (see #0628)
(vender ID 8086h, device ID 1230h/7010h)
20h DWORD Bus Master Interface Base Address
(see PORT xxxxh"Intel 82371SB")
40h WORD IDE timing modes, primary channel (see #3412)
42h WORD IDE timing modes, secondary channel (see #3412)
44h BYTE (82371SB) slave IDE timing register (see #3413)
45h 187 BYTEs reserved
SeeAlso: #3410,#3414,PORT xxxxh"Intel 82371SB"
Format of PCI Configuration for Intel 82371SB Function 2 (USB):
Offset Size Description (Table 3414)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 7020h)
20h DWORD I/O space base address
(see PORT xxxxh"Intel 82371SB")
40h 32 BYTEs reserved
60h BYTE Serial Bus Specification release number
00h pre-release 1.0
10h Release 1.0
61h 9 BYTEs reserved
6Ah WORD miscellaneous status (see #3422)
6Ch 84 BYTEs reserved
C0h WORD legacy support (see #3423)
C2h 62 BYTEs reserved
SeeAlso: #3410,#3411,PORT xxxxh"Intel 82371SB"
Bitfields for Intel 82371FB/82371SB top of memory register:
Bit(s) Description (Table 3415)
7-4 top of ISA memory (in megabytes, less 1; i.e. 0001 = 2M)
3 ISA/DMA lower BIOS forwarding enable
2 (82371SB) enable A000/B000 segment forwarding to PCI bus
1 enable forwarding ISA/DMA 512K-640K region to PCI bus
0 reserved
SeeAlso: #3410,#3416
Bitfields for Intel 82371FB/82371SB miscellaneous status register:
Bit(s) Description (Table 3416)
15 (82371SB) enable SERR# on delayed transaction
write 1 to clear this bit
14-8 reserved
7 (82371SB) NB Retry Enable
6 (82371SB) EXTSMI# Mode Enable
allow special SERR# protocol between PCI bridge and 82371
5 reserved
4 (82371SB) enable USB
disable USB's master enable and I/O decode enable prior to
clearing this bit!
3 reserved
2 (82371FB) PCI Header Type Bit enable
=1 report multifunction device in PCI configuration header
1 (82371FB) internal ISA DMA/external DMA Mode status (read-only)
=0 normal DMA operation
0 (82371FB) ISA Clock Divisor status (read-only)
(82371SB) ISA Clock Divisor (read-write)
=1 SYSCLK clock divisor is 3
=0 SYSCLK clock divisor is 4
SeeAlso: #3410,#3415
Bitfields for Intel 82371FB/82371SB motherboard IRQ Route Control:
Bit(s) Description (Table 3417)
7 disable IRQ routing
6 enable MIRQx/IRQx sharing
5 (82371SB) enable IRQ0 output
4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Note: IRQs 0-2, 8, and 13 are reserved
SeeAlso: #3410,#3415,#3418
Bitfields for Intel 82371FB/82371SB motherboard DMA control:
Bit(s) Description (Table 3418)
7 type F and DMA buffer enable
6-4 reserved
3 (82371FB) disable motherboadr DMA channel
2-0 DMA channel number
(82371FB) Type F and Motherboard DMA
(82371SB) Type F DMA
SeeAlso: #3410,#3417
Bitfields for Intel 82371FB/83271SB programmable chip select control register:
Bit(s) Description (Table 3419)
15-2 I/O address which will assert PCS# signal
1-0 PCS address mask
00 four bytes
01 eight contiguous bytes
10 disabled
11 sixteen contiguous bytes
SeeAlso: #3410,#3418,#3420
Bitfields for Intel 82371SB Deterministic Latency Control register:
Bit(s) Description (Table 3420)
7-4 reserved
3 enable SERR# on delayed transaction timeout
2 enable USB passive release
1 enable passive release
0 enable delayed transactions
SeeAlso: #3410,#3419
Bitfields for Intel 82371FB/82371SB SMI Control Register:
Bit(s) Description (Table 3421)
7-5 reserved
4-3 Fast-Off Timer freeze/granularity selection
00 one minute granularity (assuming 33 MHz PCICLK)
01 disabled (frozen)
10 one PCICLK
11 one millisecond
2 STPCLK# scaling enable
=1 enable Clock Scale bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #3410,#3345
Bitfields for Intel 82371FB/82371SB IDE timing modes:
Bit(s) Description (Table 3412)
15 IDE decode enable
14 (82371SB) slave IDE timing register enable (see #3413)
13-12 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
11-10 reserved
9-8 recovery time between IORDY# sample point and DIOx#
00 four clocks
01 three clocks
10 two clocks
11 one clock
7 DMA timing enable only, drive 1
6 prefetch and posting enable, drive 1
5 IORDY# sample point enable drive select 1
4 fast timing bank drive select 1
3 DMA timing enable only, drive 0
2 prefetch and posting enable, drive 0
1 IORDY# sample point enable drive select 0
0 fast timing bank drive select 0
SeeAlso: #3411
Bitfields for Intel 82371SB slave IDE timing register:
Bit(s) Description (Table 3413)
7-6 secondary drive 1 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
5-4 secondary drive 1 recovery time
00 four clocks
01 three clocks
10 two clocks
11 one clock
3-2 primary drive 1 IORDY# sample point
1-0 primary drive 1 recovery time
SeeAlso: #3412
Bitfields for Intel 82371SB miscellaneous status:
Bit(s) Description (Table 3422)
15-1 reserved
0 USB clock selection
=1 48 MHz
=0 24 MHz
SeeAlso: #3414,#3423
Bitfields for Intel 82371SB legacy support register:
Bit(s) Description (Table 3423)
15 A20GATE pass-through sequence ended
write 1 to clear this bit
14 reserved
13 USB PIRQ enabled
12 USR IRQ status (read-only)
11 trap caused by write to PORT 0064h
write 1 to clear this bit
10 trap caused by read from PORT 0064h
write 1 to clear this bit
9 trap caused by write to PORT 0060h
write 1 to clear this bit
8 trap caused by read from PORT 0060h
write 1 to clear this bit
7 enable SMI at end of A20GATE Pass-Through
6 A20GATE pass-through sequence in progress (read-only)
5 enable A20GATE pass-through sequence
(write PORT 64h,D1h; write 60h,xxh; read 64h; write 64h,FFh)
4 enable trap/SMI on USB IRQ
3 enable trap/SMI on PORT 0064h write
2 enable trap/SMI on PORT 0064h read
1 enable trap/SMI on PORT 0060h write
0 enable trap/SMI on PORT 0060h read
SeeAlso: #3414,#3422
Format of PCI Configuration Data for Intel 82441FX:
Offset Size Description (Table 3424)
00h 64 BYTEs header (see #0628)
(vendor ID 8086h, device ID 1237h) (see #3308)
40h 16 BYTEs reserved
50h WORD PMC Configuration (see #3425)
52h BYTE deturbo counter control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
53h BYTE DBX buffer control (see #3426)
54h BYTE auxiliary control (see #3427)
55h WORD DRAM Row Type (see #3428)
57h BYTE DRAM Control (see #3429)
58h BYTE DRAM Timing (see #3430)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #3401)
60h 8 BYTEs DRAM Row Buondary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 8M units
68h BYTE Fixed DRAM Hole Control
69h 7 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82441 will grant the bus to another PCI agent on request
71h BYTE CPU Latency Timer (see #3431)
72h BYTE System Management RAM control (see #3404)
73h 29 BYTEs reserved
90h BYTE Error Command (see #3432)
91h BYTE Error Status (see #3433)
92h BYTE reserved
93h BYTE Turbo Reset Control (see #3434)
94h 108 BYTEs reserved
SeeAlso: #3407,#3392
Bitfields for Intel 82441FX PMC Configuration Register:
Bit(s) Description (Table 3425)
15 WSC Protocol Enable
14 Row Select/Extra Copy select (read-only)
=1 pins on PMC configured as two additional row selects (6/7)
=0 extra copy of two lowest memory address bits enabled
13-10 reserved
9-8 host frequence select
00 reserved
01 60 MHz
10 66 MHz
11 reserved
7 reserved
6 ECC/Parity TEST enable
5-4 DRAM Data Integrity Mode
00 no parity/ECC
01 parity generated and checked
10 ECC generated and checked, correction disabled
10 ECC generated and checked, correction enabled
3 reserved
2 In-Order Queue size (0=one, 1=four)
1-0 reserved
SeeAlso: #3424,#3426
Bitfields for Intel 82441FX DBX buffer control register:
Bit(s) Description (Table 3426)
7 enable delayed transactions
6 enable CPU-to-PCI IDE posting
5 enable USWC Write Post during I/O Bridge access
4 disable PCI Delayed Transaction timer
3 enable CPU-to-PCI Write Post
2 enable PCI-to-DRAM pipeline
1 enable PCI Burst Write Combining
0 enable Read-Around-Write
SeeAlso: #3424,#3425
Bitfields for Intel 82441FX auxiliary control register:
Bit(s) Description (Table 3427)
7 enable RAS precharge
6-2 reserved
1 Lower Memory Address Buffer Set A
=0 8mA
=1 12mA
0 reserved
SeeAlso: #3424
Bitfields for Intel 82441FX DRAM Row Type register:
Bit(s) Description (Table 3428)
15-14 row 7 DRAM type
13-12 row 6 DRAM type
11-10 row 5 DRAM type
9-8 row 4 DRAM type
7-6 row 3 DRAM type
5-4 row 2 DRAM type
3-2 row 1 DRAM type
1-0 row 0 DRAM type
00 fast page-mode DRAM
01 EDO DRAM
10 BEDO DRAM
11 empty row
SeeAlso: #3424,#3429
Bitfields for Intel 82441FX DRAM Control register:
Bit(s) Description (Table 3429)
7 reserved
6 enable DRAM Refresh Queue
5 enable DRAM EDO Auto-Detect Mode
4 DRAM Refresh Type
=0 CAS before RAS
=1 RAS only
3 reserved
2-0 DRAM refresh rate
000 disabled
001 normal (as set by PMCCFG register)
01x reserved
1xx reserved
111 fast refresh (every 32 host clocks)
SeeAlso: #3424,#3428,#3430
Bitfields for Intel 82441FX DRAM Timing register:
Bit(s) Description (Table 3430)
7 reserved
6 enable WCBR Mode
5-4 DRAM Read Burst Timing
BEDO EDO FPM
00 x333 x444 x444
01 x222 x333 x444
10 x222 x222 x333
11 res. res. res.
3-2 DRAM Write Burst Timing
(B)EDO FPM
00 x444 x444
01 x333 x444
10 x333 x333
11 x222 x333
1 RAS-to-CAS delay
=1 one clock
=0 zero clocks
0 insert one MA Wait State
SeeAlso: #3424,#3429
Bitfields for Intel 82441FX CPU Latency Timer register:
Bit(s) Description (Table 3431)
7-5 reserved
4-0 snoop stall count value
SeeAlso: #3424
Bitfields for Intel 82441FX Error Command register:
Bit(s) Description (Table 3432)
7-5 reserved
4 enable SERR# on receiving Target Abort
3 enable SERR# on PCI Parity Error (PERR#)
2 reserved
1 enable SERR# on receiving multiple-bit ECC/Parity error
0 enable SERR# on receiving single-bit ECC error
SeeAlso: #3424,#3433
Bitfields for Intel 82441FX Error Status register:
Bit(s) Description (Table 3433)
7-5 DRAM row causing first multi-bit error (read-only)
4 multiple-bit uncorrectable error detected
write 1 to this bit to clear it
3-1 DRAM row causing first single-bit error (read-only)
0 single-bit correctable ECC error detected
write 1 to this bit to clear it
SeeAlso: #3424,#3432
Bitfields for Intel 82441FX Turbo Reset Control register:
Bit(s) Description (Table 3434)
7-4 reserved
3 enable BIST on hard reset
2 reset CPU
1 reset mode
0 soft reset
1 hard reset
0 deturbo mode
SeeAlso: #3424,PORT 0CF9h
Format of OpenHCI Host Controller memory-mapped registers:
Offset Size Description (Table 3330)
00h DWORD "HcRevision" OpenHCI revision (see #3455)
04h DWORD "HcControl" HC operating modes (see #3456)
08h DWORD "HcCommandStatus" command/status (see #3457)
0Ch DWORD "HcInterruptStatus" interrupt status (see #3458)
10h DWORD "HcInterruptEnable" enable interrupts (see #3459)
14h DWORD "HcInterruptDisable" disable interrupts (see #3459)
18h DWORD "HcHCCA" HC Communications Area (see #3462)
1Ch DWORD "HcPeriodCurrentED" Endpoint Descriptor addr (see #3463)
20h DWORD "HcControlHeadED" Control Endpoint Descriptor (see #3464)
24h DWORD "HcControlCurrentED" Control Endpoint Descriptor (see #3464)
28h DWORD "HcBulkHeadED" Bulk Endpoint Descriptor (see #3465)
2Ch DWORD "HcBulkCurrentED" Bulk Endpoint Descriptor (see #3465)
30h DWORD "HcDoneHead" last completed Xfer Descr. (see #3466)
34h DWORD "HcFmInterval" Frame bit-time interval (see #3516)
38h DWORD "HcFmRemaining" bit time remaining in Frame (see #3517)
3Ch DWORD "HcFmNumber" Frame Number (bits 15-0)
40h DWORD "HcPeriodicStart" earliest time to start periodic list
(bits 13-0)
44h DWORD "HcLSThreshold" threshold for Low Speed transaction
(bits 11-0)
48h DWORD "HcRhDescriptorA" Root Hub Descriptor A (see #3518)
4Ch DWORD "HcRhDescriptorB" Root Hub Descriptor B (see #3519)
50h DWORD "HcRhStatus" Root Hub status (see #3520)
54h N DWORDs "HCRhPortStatus[1-N]" Root Hub port status N (see #3521)
Note: OpenHCI reserves a full 4K page of the systems address space for its
memory-mapped registers
SeeAlso: #0628,#0633,#F057
Bitfields for OpenHCI "HcRevision" register:
Bit(s) Description (Table 3455)
31-8 reserved
7-0 BCD OpenHCI specification number (10h = 1.0, 11h = 1.1)
Note: this register is read-only
SeeAlso: #3330,#3456
Bitfields for OpenHCI "HcControl" register:
Bit(s) Description (Table 3456)
31-11 reserved
10 RWE enable Remote Wakeup feature
9 RWC controller supports Remote Wakeup signalling
8 IR Interrupt Routing
0 normal host bus interrupt
1 System Managment Interrupt
7-6 HCFS USB Host Controller Functional State
00 USBReset
01 USBResume
10 USBOperational
11 USBSuspend
5 BLE enable Bulk List processing in next frame
4 CLE enable Control List processing in next frame
3 IE enable Isochronous ED processing
2 PLE enable processing of Periodic List in next frame
1-0 CBSR Control Bulk Service Ratio
00 1:1 Control EDs:Bulk EDs served
01 2:1
10 3:1
11 4:1
SeeAlso: #3330,#3455,#3457
Bitfields for OpenHCI "HcCommandStatus" register:
Bit(s) Description (Table 3457)
31-18 reserved
17-16 SOC scheduling-overrun count
15-4 reserved
3 OCR ownership change request is pending
2 BLF bulk list contains TDs
1 CLF control list contains TDs
0 HCR host controller software reset
Note: writing a 1 bit sets the corresponding bit, while a 0 bit leaves the
corresponding bit unchanged
SeeAlso: #3330,#3455,#3458
Bitfields for OpenHCI "HcInterruptStatus" register:
Bit(s) Description (Table 3458)
31 reserved (0)
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status changed
5 FNO frame number overflowed
4 UE unrecoverable error
3 RD resume detected
2 SF start of frame
1 WDH writeback done
0 SO scheduling overrun
Note: writing a 1 bit clears the corresponding bit of the register
SeeAlso: #3330,#3455,#3457,#3459
Bitfields for OpenHCI "HcInterruptEnable" and "HcInterruptDisable" registers:
Bit(s) Description (Table 3459)
31 MIE master interrupt enable
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status change
5 FNO frame number overflow
4 UE unrecoverable error
3 RD Resume Detect
2 SF start of frame
1 WDH HcDoneHead writeback
0 SO scheduling overrun
Note: writing a 1 bit to HcInterruptEnable enables the corresponding
interrupt, while writing a 1 bit to HcInterruptDisable disables it;
zero bits are ignored. On reading, both registers return the
same value, which reflects the currently enabled interrupts
SeeAlso: #3330
Bitfields for OpenHCI "HcHCCA" register:
Bit(s) Description (Table 3462)
31-8 physical address of Host Controller Communications Area (bits 31-8)
7-0 reserved (0)
Note: the required alignment for the HCCA may be determined by writing
FFFFFFFFh to this register and determining the number of low-order
zero bits
SeeAlso: #3330,#3463,#3464
Bitfields for OpenHCI "HcPeriodCurrentED" register:
Bit(s) Description (Table 3463)
31-4 physical address of current Isochronous/Interrupt Endpoint Descriptor
(bits 31-4)
3-0 reserved (0)
SeeAlso: #3330,#3462,#3464
Bitfields for OpenHCI "HcControlHeadED"/"HcControlCurrentED" register:
Bit(s) Description (Table 3464)
31-4 physical address of first/current Endpoint Descriptor (bits 31-4)
3-0 reserved (0)
Note: HcControlCurrentED is set to 0000000h to indicate the end of the
Control list
SeeAlso: #3330,#3462,#3463
Bitfields for OpenHCI "HcBulkHeadED"/"HcBulkCurrentED" register:
Bit(s) Description (Table 3465)
31-4 physical address of first/current Endpoint Descriptor in the Bulk
list (bits 31-4)
3-0 reserved (0)
Note: HcBulkCurrentED is set to 0000000h to indicate the end of the Bulk
list
SeeAlso: #3330,#3462,#3464
Bitfields for OpenHCI "HcDoneHead" register:
Bit(s) Description (Table 3466)
31-4 physical address of most-recently completed Transfer Descriptor added
to the Done queue (bits 31-4)
3-0 reserved (0)
SeeAlso: #3330,#3463,#3465
Bitfields for OpenHCI "HcFmInterval" register:
Bit(s) Description (Table 3516)
31 "FIT" toggled each time a new value is loaded into bits 13-0
30-16 "FSMPS" largest data packet in bits
15-14 reserved
13-0 "FI" Frame Interval (between to consecutive SOFs)
SeeAlso: #3330,#3517
Bitfields for OpenHCI "HcFmRemaining" register:
Bit(s) Description (Table 3517)
31 "FRT" loaded from bit 31 of HcFmInterval whenever FR reaches 0
30-14 reserved
13-0 "FR" FrameRemaining -- bits times left in current frame
SeeAlso: #3330,#3516
Bitfields for OpenHCI "HcRhDescriptorA" register:
Bit(s) Description (Table 3518)
31-24 "POTPGT" power-on to power-good time in 2ms units
23-13 reserved
12 "NOCP" no over-current protection supported
11 "OCPM" over-current status reported per-port
10 "DT" device type - is root hub compound device?
9 "NPS" NoPowerSwitching -- ports are always powered up
8 "PSM" power-switching mode -- if set, each port powered individually
7-0 "NDP" number of downstream ports
SeeAlso: #3330,#3519,#3520
Bitfields for OpenHCI "HcRhDescriptorB" register:
Bit(s) Description (Table 3519)
31-16 "PPCM" PortPowerControlMask -- bitmask of ports NOT affected by global
power control (bit 16 [port #0] is reserved)
15-0 "DR" DeviceRemovable -- bitmap of removable devices
SeeAlso: #3330,#3518,#3520
Bitfields for OpenHCI "HcRhStatus" register:
Bit(s) Description (Table 3520)
31 "CRWE" Clear Remote Wakeup Enable
write 1 to disable remote wakeup (writes of 0 ignored)
30-18 reserved
17 "OCIC" OverCurrent Indicator Change
write 1 to clear
16 R "LPSC" Local Power Status Change
W Set Global Power mode (write 1; writes of 0 ignored)
15 "DRWE" Device Remote Wakeup Enable
write 1 to enable (writes of 0 ignored)
read to get current status
14-2 reserved
1 "OCI" OverCurrent Indicator
0 R "LPS" LocalPowerStatus (always 0 for Root Hub)
W write 1 to turn off power to all ports/ports with clear
PortPowerControlMask bits
SeeAlso: #3330,#3518,#3519,#3521
Bitfields for OpenHCI "HcRhPortStatusN" register:
Bit(s) Description (Table 3521)
31-21 reserved
20 "PRSC" Port Reset Status Change (write '1' to clear)
19 "OCIC" Port OverCurrent Indiactor Change (write '1' to clear)
18 "PSSC" Port Suspend Status Change (write '1' to clear)
17 "PESC" Port Enable Status Change (write '1' to clear)
16 "CSC" Connect Status Change (write '1' to clear)
15-10 reserved
9 R "LSDA" Low Speed Device Attached
W clear port power by writing '1'
8 R "PPS" Port Power Status
W set port power by writing '1'
7-5 reserved
4 R "PRS" Port Reset Status
W set port reset by writing '1'
3 R "POCI" Port OverCurrent Indicator
W clear suspend status by writing '1'
2 R "PSS" Port Suspend Status
W set port suspend by writing '1'
1 R "PES" Port Enable Status
W set port enable by writing '1'
0 R "CCS" current connect status
W clear port enable by writing '1'
SeeAlso: #3330,#3518,#3519,#3520
--------X-1AB10B-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE
AX = B10Bh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
CL = byte to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B10Ch,AX=B10Dh,AX=B18Bh,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10C-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD
AX = B10Ch
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 2 less than 0100h)
CX = word to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h,AX=B10Bh,AX=B10Dh,AX=B18Ch,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10D-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD
AX = B10Dh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 4 less than 0100h)
ECX = dword to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0625)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B10Bh,AX=B10Ch,AX=B18Dh,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10EBX0000-----------------------
INT 1A - Intel PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION
AX = B10Eh
BX = 0000h
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
ES:(E)DI -> IRQ routing table header (see #0666 at AX=B406h)
Return: CF clear if successful
AH = 00h
BX = bit map of IRQ channels permanently dedicated to PCI
WORD ES:[DI] = size of returned data
CF set on error
AH = error code (59h) (see #0650)
WORD ES:[DI] = required size of buffer
SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10F-----------------------------
INT 1A - Intel PCI BIOS v2.1+ - SET PCI IRQ
AX = B10Fh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
CH = number of IRQ to connect
CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (59h) (see #0650)
Note: assumes that the calling application has determined the IRQ routing
topology (see AX=B10Eh), has ensured that the selected IRQ will not
cause a conflict, and will update the interrupt line configuration
register on all devices which currently use the IRQ line
SeeAlso: AX=B10Eh
--------X-1AB181-----------------------------
INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK (32-bit)
AX = B181h
Return: as for AX=B101h
SeeAlso: AX=B101h
--------X-1AB182-----------------------------
INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE (32-bit)
AX = B182h
CX = device ID
DX = vendor ID
SI = device index (0-n)
Return: as for AX=B102h
SeeAlso: AX=B102h
--------X-1AB183-----------------------------
INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE (32-bit)
AX = B183h
ECX = class code (bits 23-0)
SI = device index (0-n)
Return: as for AX=B103h
SeeAlso: AX=B103h
--------X-1AB186-----------------------------
INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS (32-bit)
AX = B186h
BH = bus number
EDX = Special Cycle data
Return: as for AX=B106h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B106h
--------X-1AB188-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE (32-bit)
AX = B188h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B108h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h
--------X-1AB189-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD (32-bit)
AX = B189h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B109h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h
--------X-1AB18A-----------------------------
INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD (32-bit)
AX = B18Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B10Ah
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah
--------X-1AB18B-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE (32-bit)
AX = B18Bh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
CL = byte to write
Return: as for AX=B10Bh
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Bh
--------X-1AB18C-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD (32-bit)
AX = B18Ch
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 2 less than 0100h)
CX = word to write
Return: as for AX=B10Ch
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ch
--------X-1AB18D-----------------------------
INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD (32-bit)
AX = B18Dh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 4 less than 0100h)
ECX = dword to write
Return: as for AX=B10Dh
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Dh
--------X-1AB400-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - INSTALLATION CHECK
AX = B400h
Return: CF clear if installed
AX = 0000h if installed
BH = ACFG major version (02h)
BL = ACFG minor version (08h)
CX = ??? (0002h)
EDX = 47464341h ('GFCA', which is byte-swapped 'ACFG')
SI = ??? (001Fh)
SeeAlso: AX=B401h,AX=B402h,AX=B403h,AX=B404h,AX=B405h,AX=B406h,AX=B407h
SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
(Table 0650)
Values for Intel Plug-and-Play AUTO-CONFIGURATION error codes:
0000h successful
0001h specified action could not be completed
0051h ???
0055h unable to read/write configuration table from/to nonvolatile storage
0056h not a valid configuration table or wrong table version
0059h buffer too small
0081h unsupported function
FFFFh ???
SeeAlso: #F053
--------X-1AB401-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET DEFAULT CONFIG TABLE
AX = B401h
Return: CF clear if successful
AX = 0000h
BX = maximum size of configuration table in bytes
CX = required configuration buffer size
(includes scratch space used by ACFG code)
EDI = linear/physical address of ESCD table (see #0651)
CF set on error
AX = error code (see #0650)
SeeAlso: AX=B400h,AX=B402h,@xxxxh:xxxxh"Plug-and-Play"
Format of Intel Plug-and-Play Extended System Configuration Data table:
Offset Size Description (Table 0651)
00h WORD total length of this table
02h 4 BYTEs signature "ACFG"
06h BYTE minor version number
07h BYTE major version number (currently 02h)
08h BYTE number of boards listed in the configuration data
09h 3 BYTEs reserved (00h)
0Ch var board data
WORD checksum
Notes: this table contains information about the standard devices in the
system, such as serial ports, parallel ports, etc. For each device,
it includes at least the I/O port address (03F8h,02F8h,0378h,etc).
the sum of all words in the table, including the checksum field (with
implied zero padding if the length is odd), must equal 0000h
SeeAlso: #0652
Format of Extended System Configuration Data Board Header:
Offset Size Description (Table 0652)
00h WORD length of this header in bytes
02h BYTE slot number
00h motherboard
01h-0Fh ISA/EISA
10h-40h PCI
03h BYTE reserved (00h)
SeeAlso: #0651,#0653
Format of Extended System Configuration Data Freeform Board Header:
Offset Size Description (Table 0653)
00h 4 BYTEs signature "ACFG"
04h BYTE minor version number
05h BYTE major version number (currently 02h)
06h BYTE board type
01h ISA
02h EISA
04h PCI
08h PCMCIA
10h PnPISA
20h MCA
07h BYTE reserved (00h)
08h WORD disabled functions (bit N set = function N disabled)
0Ah WORD configuration error functions
0Ch WORD reconfigurable functions (bit N set = function N reconfig'able)
0Eh 2 BYTEs reserved (00h)
SeeAlso: #0656,#0657
Format of Extended System Configuration Data Freeform PCI Device Data:
Offset Size Description (Table 0654)
00h BYTE PCI bus number
01h BYTE PCI device and function number
02h WORD PCI device identifier
04h WORD PCI vendor ID (see #0629)
06h 2 BYTEs reserved (00h)
SeeAlso: #0654,#0657
Format of Extended System Configuration Data Freeform PnP ISA Board ID:
Offset Size Description (Table 0655)
00h DWORD vendor ID (EISA device identifier)
04h DWORD serial number
SeeAlso: #0655,#0656
Format of Extended System Configuration Data PnP ISA ECD Extension Function:
Offset Size Description (Table 0656)
00h WORD 001Eh (length of this structure)
02h BYTE 01h (selection size)
03h BYTE 00h (selection data)
04h BYTE C0h (function information byte) (see #0659)
05h BYTE 18h (size of following free-format data)
06h 16 BYTEs freeform board header (see #0653)
16h 8 BYTEs Plug-and-Play board ID (see #0655)
Note: ECD = Extended Configuration Data; this structure must be the last
"function" for a particular ISA Plug-and-Play board
SeeAlso: #0657
Format of Extended System Configuration Data PCI ECD Extension Function:
Offset Size Description (Table 0657)
00h WORD length of this structure (at least 001Eh, up to 0056h)
02h BYTE 01h (selection size)
03h BYTE 00h (selection data)
04h BYTE C0h (function information byte) (see #0659)
05h BYTE size of following free-format data (at least 18h, max 50h)
06h 16 BYTEs freeform board header (see #0653)
16h 8N BYTEs PCI board ID (see #0654) for one to eight boards
Notes: ECD = Extended Configuration Data; this structure must be the last
"function" for a particular PCI board
AMI BIOS v1.00.05.AX1 sets the length field to 001Ch for entries with
a single board ID, apparently treating the field as the length of
the remainder of the structure instead of the full structure's length
SeeAlso: #0656
Bitfields for EISA ID and Slot Information:
Bit(s) Description (Table 0658)
3-0 selector among duplicate configuration file names (0000 if no dups)
5-4 slot type
00 expansion slot
01 embedded
10 virtual slot
11 reserved
6 ID is readable
7 duplicate IDs present
8 board can be disabled
9 IOCHKERR supported
10 board or entries locked
13-11 reserved
14 board does not have or need configuration file
15 configuration not complete
SeeAlso: #0659
Bitfields for EISA Function Information:
Bit(s) Description (Table 0659)
0 subtype data
1 memory information (see #0660)
2 IRQ information (see #0662)
3 DMA information (see #0663)
4 port range information (see #0664)
5 port initialization data (see #0665)
6 free form data
7 function disabled
SeeAlso: #0656,#0657,#0658
Format of EISA Memory Information:
Offset Size Description (Table 0660)
00h WORD memory information flags (see #0661)
02h 3 BYTEs high 24 bits of memory start address (LSB first)
05h WORD memory size in K (0000h = 65536K)
SeeAlso: #0659
Bitfields for EISA Memory Information Flags:
Bit(s) Description (Table 0661)
0 writable (RAM rather than ROM)
1 cached
2 write-back cache rather than write-through
4-3 memory type
00 system
01 expantion
10 virtual
11 other
5 shared
6 reserved (0)
7 more entries follow
9-8 memory width
00 byte
01 word
10 dword
11 reserved
11-10 decoded address lines
00 = 20
01 = 24
10 = 32
11 reserved
15-12 reserved (0)
SeeAlso: #0660
Bitfields for EISA IRQ Information:
Bit(s) Description (Table 0662)
3-0 IRQ number
4 reserved (0)
5 IRQ triggering (0 = edge, 1 = level)
6 IRQ is shareable
7 more entries follow
15-8 reserved (0)
SeeAlso: #0659
Bitfields for EISA DMA Information:
Bit(s) Description (Table 0663)
2-0 DMA channel number
5-3 reserved (0)
6 shareable
7 more entries follow
9-8 reserved
11-10 DMA transfer size
00 byte
01 word
10 dword
11 word, but count in bytes
13-12 DMA timing
00 ISA-compatible
01 EISA type "A"
10 EISA type "B"
11 EISA type "C"/"F" (burst)
15-14 reserved (0)
SeeAlso: #0659
Format of EISA Port Range Information:
Offset Size Description (Table 0664)
00h BYTE port description
bits 4-0: number of sequential ports
bit 5 reserved (0)
bit 6: shareable
bit 7: more entries follow
01h WORD I/O port address
SeeAlso: #0659,#0665
Format of EISA Port Initialization Data:
Offset Size Description (Table 0665)
00h BYTE flags
bits 1-0: port size
00 byte
01 word
10 dword
11 reserved
bit 2: masked write
bits 6-3 reserved (0)
bit 7: more entries follow
01h ???
SeeAlso: #0659,#0664
--------X-1AB402-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - COPY AND VERIFY CONFIG TABLE
AX = B402h
DS:SI -> configuration table (see #0651)
ES:DI -> buffer for copy of configuration table
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code (0055h,0056h) (see #0650)
Note: the buffer pointed at by ES:DI must be at least as large as the
maximum configuration table size reported by AX=B401h
SeeAlso: AX=B400h,AX=B401h,AX=B403h
--------X-1AB403-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - STORE ESCD TABLE IN NVRAM
AX = B403h
DS:SI -> configuration table (see #0651)
Return: CF clear if successful
AX = 0000h
CF set on error
AX = error code (0055h) (see #0650)
Note: sets the configuration table's checksum field, then copies the table
into nonvolatile storage (i.e. FlashROM)
SeeAlso: AX=B400h,AX=B402h
--------X-1AB404-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET AVAILABLE IRQs???
AX = B404h
BX = bitmap of IRQs being used???
Return: CF clear if successful
AX = 0000h
BX = available for ISA??? (not(BXin) & A127h)
CX = available for on-board I/O??? (not(BXin) & 40D8h)
DX = available for PCI??? (either not(BXin) & 0E00h or 0000h)
CF set on error
AX = error code (0051h) (see #0650)
Note: the various vector types have also been called "shareable",
"unshareable", and "avoidable"
SeeAlso: AX=B400h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB405-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET ???
AX = B405h
Return: AX = ??? (0008h)
SeeAlso: AX=B400h
--------X-1AB406-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET PCI IRQ ROUTING TABLE
AX = B406h
ES:DI -> IRQ routing table header (see #0666)
Return: CF clear if successful
AX = 0000h
WORD ES:[DI] = size of returned data
CF set on error
AX = error code (0059h) (see #0650)
WORD ES:[DI] = required size of buffer
SeeAlso: AX=B400h,AX=B404h,AX=B10Eh,INT 2F/AX=1684h/BX=304Ch
Format of Intel Plug-and-Play AUTO-CONFIGURATION PCI IRQ routing header:
Offset Size Description (Table 0666)
00h WORD length of IRQ routing table buffer
02h DWORD -> IRQ routing table array buffer (see #0667)
Format of Intel Plug-and-Play ACFG PCI IRQ routing table entry [array]:
Offset Size Description (Table 0667)
00h BYTE PCI bus number
01h BYTE PCI device number (bits 7-3)
02h BYTE link value for INTA#
(if non-zero, wire-ORed together with any other PCI interrupts
with same link value)
03h WORD IRQ connectivity bit map for INTA#
(standard AT IRQs to which PCI interrupt can be routed)
05h BYTE link value for INTB#
06h WORD IRQ connectivity bit map for INTB#
08h BYTE link value for INTC#
09h WORD IRQ connectivity bit map for INTC#
0Bh BYTE link value for INTD#
0Ch WORD IRQ connectivity bit map for INTD#
0Eh BYTE (PCI BIOS v2.1+) device slot number (00h = motherboard)
0Fh BYTE reserved
Note: each item in the routing table corresponds to a motherboard PCI
device or PCI slot
SeeAlso: #0666
--------X-1AB407-----------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - ???
AX = B407h
EDX = length of ???
EDI = physical address of ???
Return: CF clear if successful
AX = 0000h
EDX = ???
EDI = ???
CF set on error
AX = error code (FFFFh) (see #0650)
Notes: returns error if EDI < 000C0000h or EDI+EDX > 00100000h
seems to force EDI and EDX to align to 16K boundaries
SeeAlso: AX=B400h
--------X-1AB4-------------------------------
INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - 32-BIT API
AH = B4h
AL = function (80h-87h)
further details not yet available
Note: these functions are 32-bit versions of functions 00h-07h
--------c-1AC0-------------------------------
INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK
AH = C0h
Return: (see AH=A0h)
Notes: this call is identical to AH=A0h
this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=A0h,AH=ABh,AH=D0h
--------U-1ACCCCBXCCCC-----------------------
INT 1A U - DATEFIX - INSTALLATION CHECK
AX = CCCCh
BX = CCCCh
CX = 0000h
Return: CX = CCCCh if installed
ES:BX -> original interrupt handler
Program: DATEFIX is a public-domain TSR to correct the date on AT&T 6300
machines, where the realtime clock's calendar wraps after 1991
SeeAlso: AH=FEh,AH=FFh"AT&T"
--------c-1AD0-------------------------------
INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS
AH = D0h
AL = function code
01h enable spooler and despooler
02h enable spooler only
03h enable despooler at beginning of file
04h disable the despooler
05h disable the despooler and spooler
06h clear the spool file
08h inhibit the popup menu
09h enable the popup menu
0Ah ??? (called by Disk Spool's INT 21 handler)
0Bh disable the spooler
0Ch start despooler after last successfully printed document
0Dh start despooler at the exact point where it last left off
0Eh pop up the menu
0Fh ???
11h start new spool file??? (called by Disk Spool's INT 21 handler
when a program terminates)
14h ???
15h delete despool file and reset ???
16h ??? (writes something to unknown file)
17h ??? (writes something to despool file, then reads something
else and ???)
18h ??? (reads something from despool file, and then ???)
19h ??? (creates/truncates spool file)
20h clear file pointed to by the despooler
21h ??? (writes something to unknown file)
22h ??? (writes something to spool file if spooler/despooler using
same file)
23h ??? (opens/creates unknown file, then ???)
30h ???
31h ???
32h beep
33h append CRLF to spool file???
34h ???
35h ???
36h ???
37h append CRLF to spool file and start a new spool file???
38h ???
40h ??? (v4.05)
41h ??? (v4.05)
51h ??? (called by Disk Spool's INT 21 handler)
52h ??? (called by Disk Spool's INT 21 handler)
57h ???
5Ah ??? (v4.05)
5Bh ??? (v4.05)
5Ch ??? (v4.05)
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=A0h,AH=ADh
--------c-1AE0-------------------------------
INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE
AH = E0h
AL = subfunction
01h enable spooler
02h disable spooler
03h enable despooler
04h disable despooler
CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AH = status
00h successful
F0h printer port not managed by Disk Spool II
FFH failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=A0h,AH=E1h,AX=E301h,AX=E401h
--------c-1AE1-------------------------------
INT 1A - Disk Spool II v4.0x - GET STATUS
AH = E1h
CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AH = status
00h successful
CL = despooler state (00h disabled, 41h enabled)
CH = spooler state (00h disabled, 41h enabled)
DL = despooler activity (00h standing by, 41h printing)
ES:BX -> ASCIZ name of current spool file (or next if AutoSpool
or AutoDespool enabled)
ES:SI -> ASCIZ name of current despool file
ES:DI -> 3-byte file extension used by Disk Spool II
F0h printer port not managed by Disk Spool II
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=A0h,AH=E0h,AH=E2h
--------U-1AE11B-----------------------------
INT 1A - TheGrab v4.60 - ???
AX = E11Bh
???
Return: ??? (may destroy all registers)
SeeAlso: AX=E11Dh
--------U-1AE11D-----------------------------
INT 1A - TheGrab v4.60 - INSTALLATION CHECK
AX = E11Dh
Return: ES:DI -> signature block (see #0668) if installed
CX = length of signature block (000Fh)
Program: TheGrab is a resident ANSI screen grabber bundled with TheDraw
SeeAlso: AX=E11Bh
Format of TheGrab signature block:
Offset Size Description (Table 0668)
00h BYTE 08h
01h 8 BYTEs ASCIZ "THEGRAB"
09h 6 BYTEs ??? (zeros)
--------c-1AE2-------------------------------
INT 1A - Disk Spool II v4.0x - GET SPOOL FILES
AH = E2h
AL = which
01h first
02h next (can only call after "first")
CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AH = status
00h successful
ES:BX -> ASCIZ filename
F0h no (more) spool files
FFh failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E0h,AH=E1h
--------c-1AE301-----------------------------
INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS
AX = E301h
ES:BX -> ASCIZ filename (max 32 chars)
Return: AH = status
00h successful
ES:SI -> spool file status record (see #0669)
F0h not a spool file
FFh failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E0h,AX=E302h,AX=E401h
Format of Disk Spool II spool file status record:
Offset Size Description (Table 0669)
00h BYTE hour of creation or last update
01h BYTE minute of creation or last update
02h BYTE year-1980 of creation or last update
03h BYTE month of creation or last update
04h BYTE day of creation or last update
05h BYTE total number of copies to print
06h BYTE number of copies already printed
07h BYTE printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
08h BYTE save status (00h delete after printing, 01h save)
09h BYTE file status
01h done printing, but being saved
02h on hold
03h queued for printing
04h being spooled
05h being despooled (i.e. printed)
0Ah 16 BYTEs ASCIZ description
1Ah 2 WORDs file size in bytes (high,low)
1Eh 2 WORDs bytes left to print (high,low)
--------c-1AE302-----------------------------
INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE
AX = E302h
ES:BX -> ASCIZ filename (max 32 chars)
ES:SI -> spool file status record (see #0669)
Return: AH = status
00h successful
F0h not a spool file
FFh failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E0h,AX=E301h,AX=E401h
--------c-1AE401-----------------------------
INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE
AX = E401h
ES:BX -> ASCIZ filename (max 32 chars)
CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AH = status
00h successful
FFh failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E1h,AX=E302h,AX=E402h
--------c-1AE402-----------------------------
INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE???
AX = E402h
ES:BX -> ASCIZ filename (max 32 chars)
CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AH = status
00h successful
FFh failed
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E1h,AX=E302h,AX=E401h
--------c-1AE5-------------------------------
INT 1A U - Emulaser ELSPL.COM - ???
AH = E5h
???
Return: ???
Program: ELSPL.COM is a licensed version of Disk Spool II which is distributed
as part of Vertisoft's Emulaser PostScript emulator
SeeAlso: AH=A0h,INT 17/AH=03h
--------c-1AEE-------------------------------
INT 1A U - Disk Spool II v4.05 - ???
AH = EEh
AL = printer port???
???
Return: ???
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=E1h
--------U-1AF7-------------------------------
INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
AH = F7h
Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
system time to correct for clock drift
Note: any AH value from F0h-F7h or F9h-FEh will perform this function in
version 1.1, but F7h is the function called by transient portion
SeeAlso: AH=F8h,AH=FFh"RighTime"
--------U-1AF8-------------------------------
INT 1A - RighTime v1.1 - ENABLE
AH = F8h
Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
system time to correct for clock drift
Note: RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
TeSseRact program identifier based on its current state: "RighTime"
when enabled, "RighTim"F7h when disabled.
SeeAlso: AH=F7h,AH=FFh"RighTime"
--------b-1AFE-------------------------------
INT 1A - AT&T 6300 - READ TIME AND DATE
AH = FEh
Return: BX = day count (0 = Jan 1, 1984)
CH = hour
CL = minute
DH = second
DL = hundredths
SeeAlso: AX=CCCCh/BX=CCCCh,AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2Ch
--------b-1AFF-------------------------------
INT 1A - AT&T 6300 - SET TIME AND DATE
AH = FFh
BX = day count (0 = Jan 1, 1984)
CH = hour
CL = minute
DH = second
DL = hundredths
Return: ???
SeeAlso: AX=CCCCh/BX=CCCCh,AH=FEh,INT 21/AH=2Bh"DATE",INT 21/AH=2Dh
--------U-1AFF-------------------------------
INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
AH = FFh
Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
system time to correct for clock drift
Note: upon being permanently disabled, RighTime closes the file handle
referencing its executable (which is updated with time correction
information every two minutes while RighTime is enabled).
--------s-1AFF00-----------------------------
INT 1A - SND - INSTALLATION CHECK???
AX = FF00h
Return: AL = version??? (02h)
AH = busy flag (00h if not in a SND call, 01h if SND currently active)
Note: the SND API is also supported by IC (Internal Commands) v2.0, a
shareware TSR by Geoff Friesen which extends COMMAND.COM's internal
command set
SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05h
--------s-1AFF01-----------------------------
INT 1A - SND - PAUSE
AX = FF01h
DX = number of clock ticks to delay
Return: AH = status
00h successful
01h SND busy
Notes: if successful, execution returns to the caller after the delay expires;
if SND is busy, execution returns immediately
the IC v2.0 implementation of this API makes no special allowance for
time rollover at midnight, which can cause the delay to be over one
hour if this function is called just before the BIOS time count
rolls over and the delay extends into the next day
SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h
SeeAlso: INT E0/CL=BDh
--------s-1AFF02-----------------------------
INT 1A - SND - START SOUND
AX = FF02h
DX = frequency in Hertz (14h-FFFFh)
Return: AH = status
00h successful
01h SND busy
SeeAlso: AX=FF00h,AX=FF01h,AX=FF03h
--------s-1AFF03-----------------------------
INT 1A - SND - STOP SOUND
AX = FF03h
Return: AH = status
00h successful
01h busy
Note: turns off any sound currently being emitted by the PC's speaker unless
SND is currently busy processing an API call (this includes
background music). Use AX=FF05h to stop the sound even if an API
call is in progress.
SeeAlso: AX=FF00h,AX=FF02h,AX=FF05h
--------s-1AFF04-----------------------------
INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
AX = FF04h
DS:DX -> ASCIZ music string
Return: AH = status
00h successful (music begins playing in background)
01h busy
Note: the music string accepted by SND is not the same as that accepted by
BASIC and other programs which process music strings
SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006h
--------s-1AFF05-----------------------------
INT 1A - SND - UNCONDITIONALLY STOP SOUND
AX = FF05h
Return: AH = 00h (successful)
Note: this function is the same as AX=FF03h, but will stop the sound even if
SND is currently busy, such as playing background music
SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007h
--------B-1B---------------------------------
INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER
Desc: this interrupt is automatically called when INT 09 determines that
Control-Break has been pressed
Note: normally points to a short routine in DOS which sets the Ctrl-C flag,
thus invoking INT 23h the next time DOS checks for Ctrl-C.
SeeAlso: INT 23
--------B-1C---------------------------------
INT 1C - TIME - SYSTEM TIMER TICK
Desc: this interrupt is automatically called on each clock tick by the INT 08
handler
Notes: this is the preferred interrupt to chain when a program needs to be
invoked regularly
not available on NEC 9800-series PCs
SeeAlso: INT 08,INT E2"PC Cluster"
--------B-1D---------------------------------
INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES
Note: the default parameter table (see #0670) is located at F000h:F0A4h for
100% compatible BIOSes
SeeAlso: INT 10/AH=00h
Format of video parameters:
Offset Size Description (Table 0670)
00h 16 BYTEs 6845 register values for modes 00h and 01h
10h 16 BYTEs 6845 register values for modes 02h and 03h
20h 16 BYTEs 6845 register values for modes 04h and 05h
30h 16 BYTEs 6845 register values for modes 06h and 07h
40h WORD bytes in video buffer for modes 00h and 01h (0800h)
42h WORD bytes in video buffer for modes 02h and 03h (1000h)
44h WORD bytes in video buffer for modes 04h and 05h (4000h)
46h WORD bytes in video buffer for mode 06h (4000h)
48h 8 BYTEs columns on screen for each of modes 00h through 07h
50h 8 BYTEs CRT controller mode bytes for each of modes 00h through 07h
Note: QEMM v7.5 Stealth appears to copy only the first 40h bytes of this
table into always-accessible memory
--------B-1E---------------------------------
INT 1E - SYSTEM DATA - DISKETTE PARAMETERS
Notes: the default parameter table (see #0671) is located at F000h:EFC7h for
100% compatible BIOSes
if the table is changed, INT 13/AH=00h should be called to ensure that
the floppy-disk controller is appropriately reprogrammed
SeeAlso: INT 13/AH=0Fh,INT 41"HARD DISK 0",INT 4D/AH=0Ah
Format of diskette parameter table:
Offset Size Description (Table 0671)
00h BYTE first specify byte
bits 7-4: step rate
bits 3-0: head unload time (0Fh = 240 ms)
01h BYTE second specify byte
bits 7-1: head load time (01h = 4 ms)
bit 0: non-DMA mode (always 0)
02h BYTE delay until motor turned off (in clock ticks)
03h BYTE bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)
04h BYTE sectors per track
05h BYTE length of gap between sectors (2Ah for 5.25", 1Bh for 3.5")
06h BYTE data length (ignored if bytes-per-sector field nonzero)
07h BYTE gap length when formatting (50h for 5.25", 6Ch for 3.5")
08h BYTE format filler byte (default F6h)
09h BYTE head settle time in milliseconds
0Ah BYTE motor start time in 1/8 seconds
SeeAlso: #2481 at INT 4D/AH=09h
--------B-1F---------------------------------
INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT
Desc: this vector points at 1024 bytes of graphics data, 8 bytes for each
character 80h-FFh
Note: graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100%
compatible BIOSes
SeeAlso: INT 10/AX=5000h,INT 43
--------b-1F12-------------------------------
INT 1F U - C&T "SuperState" BIOS - POWER OFF
AH = 12h
Return: none
Note: POWER OFF
--------b-1F17-------------------------------
INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState
AH = 17h
ES:DI -> far procedure
Return: all registers except AH,ES,DI
Note: You can change the BIOS area (F000h:0000h - F000h:FFFFh) only through
this function
--------b-1F19-------------------------------
INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE
AH = 19h
AL = hour in BCD
BH = minutes in BCD
BL = seconds in BCD
CH = year century in BCD (must be 19h)
CL = year low in BCD
DH = month in BCD
DL = date in BCD
Return: CF clear
--------b-1F1C-------------------------------
INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT
AH = 1Ch
BX = sec until suspend starts
Return: None
--------b-1F1D-------------------------------
INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT
AH = 1Dh
BX = sec until sleep starts
Return: None
--------J-1F90-------------------------------
INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY
AH = 90h
ES:BX -> global descriptor table (see #0403 at INT 15/AH=87h)
CX = number of bytes to copy
SI = 0000h
DI = 0000h
Return: CF clear if successful
CF set on error
???
SeeAlso: INT 15/AH=87h
--------b-1FF5--BLFA-------------------------
INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT
AH = F5h
BL = FAh
Return: none
Note: this function will not return until the correct password is entered
SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
--------b-1FF5--BLFD-------------------------
INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD
AH = F5h
BL = FDh
CX:SI = input string
DX:DI = encrypted string
BH = length of input string
Return: CF set on error
SeeAlso: AH=F5h/BL=FAh,AH=F5h/BL=FEh
--------b-1FF5--BLFE-------------------------
INT 1F U - C&T "SuperState" BIOS - SET PASSWORD
AH = F5h
BL = FEh
CX:SI -> input string
BH = length of input string (if BH = 00h, clear password)
Return: CF set on error
Note: the input string must be encrypted by INT 1Fh/AH=F5h/BL=FDh
SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FFh
--------b-1FF5--BLFF-------------------------
INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD
AH = F5h
BL = FFh
DX:DI = string buffer
Return: CF set on error
CF clear if successful
BH = length of input string (if BH = 00h, password is not valid)
DX:DI -> encrypted password string
SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
--------b-1FFB-------------------------------
INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED
AH = FBh
BL = function
00h get CPU speed
Return: AL = current CPU speed (00h = fast, 01h = slow)
01h set CPU speed
AL = new CPU speed (00h = fast, 01h = slow)
SeeAlso: AH=FCh/BL=00h
--------b-1FFC--BL00-------------------------
INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS
AH = FCh
BL = 00h
Return: AL = current alarm state (00h = disabled, 01h = enabled)
SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h
--------b-1FFC--BL01-------------------------
INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS
AH = FCh
BL = 01h
AL = new alarm state (00h = disabled, 01h = enabled)
SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h
--------b-1FFC--BL02-------------------------
INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME
AH = FCh
BL = 02h
Return: CH = hour by BCD
CL = min by BCD
DH = sec by BCD
SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h,AH=FCh/BL=04h
--------b-1FFC--BL03-------------------------
INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME
AH = FCh
BL = 03h
CH = hour by BCD
CL = min by BCD
DH = sec by BCD
Return: CF set on error (incorrect time format or Alarm is not enable)
SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h,AH=FCh/BL=05h
--------b-1FFC--BL04-------------------------
INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE
AH = FCh
BL = 04h
Return: CH = year century by BCD
CL = year low by BCD
DH = month by BCD
DL = date by BCD
SeeAlso: AH=FCh/BL=02h,AH=FCh/BL=05h
--------b-1FFC--BL05-------------------------
INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE
AH = FCh
BL = 05h
CH = year century by BCD
CL = year low by BCD
DH = month by BCD
DL = date by BCD
Return: CF set on error (incorrect date format or Alarm is not enable)
SeeAlso: AH=FCh/BL=03h,AH=FCh/BL=04h
--------b-1FFD--BL00-------------------------
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS
AH = FDh
BL = 00h
Return: AL = current wake-up state (00h = disabled, 01h = enabled)
SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
--------b-1FFD--BL01-------------------------
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS
AH = FDh
BL = 01h
AL = new wake-up state (00h = disabled, 01h = enabled)
SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
--------b-1FFD--BL02-------------------------
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME
AH = FDh
BL = 02h
Return: CH = hour by BCD
CL = min by BCD
DH = sec by BCD
SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
--------b-1FFD--BL03-------------------------
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
AH = FDh
BL = 03h
CH = hour by BCD
CL = min by BCD
DH = sec by BCD
Return: CF set on error (incorrect Time format or Auto Wake up is not enable)
SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
--------b-1FFD--BL04-------------------------
INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE
AH = FDh
BL = 04h
Return: CH = year century in BCD
CL = year low in BCD
DH = month in BCD
DL = date in BCD
SeeAlso: AH=FDh/BL=02h,AH=FDh/BL=05h
--------b-1FFD--BL05-------------------------
INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE
AH = FDh
BL = 05h
CH = year century in BCD
CL = year low in BCD
DH = month in BCD
DL = date in BCD
Return: CF set on error (incorrect date format or Auto Wake up is not enable)
SeeAlso: AH=FDh/BL=03h"C&T",AH=FDh/BL=04h"C&T"
--------O-20---------------------------------
INT 20 - Minix - SEND/RECEIVE MESSAGE
AX = process ID of other process
BX -> message
CX = operation (1 send, 2 receive, 3 send&receive)
Program: Minix is a Version 7 Unix-compatible operating system by Andrew
Tanenbaum
Note: the message contains the system call number (numbered as in V7
Unix(tm)) and the call parameters
--------D-20---------------------------------
INT 20 - DOS 1+ - TERMINATE PROGRAM
CS = PSP segment
Return: never
Notes: (see INT 21/AH=00h)
this function sets the program's return code (ERRORLEVEL) to 00h
SeeAlso: INT 21/AH=00h,INT 21/AH=4Ch
--------G-20---------------------------------
INT 20 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE FIRMWARE DEBUGGER
???
Return: ???
SeeAlso: INT 21"COMTROL"
--------W-20---------------------------------
INT 20 P - Microsoft Windows - VxD SERVICES
Note: the desired VxD and service number are identified by the data
immediately following the INT 20 instruction, as in:
INT 20h
DW service number
DW VxD identifier
SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#0672,#3382
(Table 0672)
Values for VMM (VxD ID 0001h) service number:
0000h get version
0001h get current VM handle
0002h test current VM handle
0003h get system VM handle
0004h test system VM handle
0005h validate VM handle
0006h get VMM reenter count
0007h begin reentrant execution
0008h end reentrant execution
0009h install V86 breakpoint
000Ah remove V86 breakpoint
000Bh allocate V86 callback
000Ch allocation PM callback
000Dh call when VM returns
000Eh schedule global event
000Fh schedule VM event
0010h call global event
0011h call VM event
0012h cancel global event
0013h cancel VM event
0014h call priority VM event
0015h cancel priority VM event
0016h get NMI handler address
0017h set NMI handler address
0018h hook NMI event
0019h call when VM interrupts enabled
001Ah enable VM interrupts
001Bh disable VM interrupts
001Ch map flat
001Dh map linear to VM address
001Eh adjust execution priority
001Fh begin critical section
0020h end critical section
0021h end critical section and suspend
0022h claim critical section
0023h release critical section
0024h call when not critical
0025h create semaphore
0026h destroy semaphore
0027h wait on semaphore
0028h signal semaphore
0029h get critical section status
002Ah call when task switched
002Bh suspend VM
002Ch resume VM
002Dh no-fail resume VM
002Eh nuke VM
002Fh crash current VM
0030h get execution focus
0031h set execution focus
0032h get time slice priority
0033h set time slice priority
0034h get time slice granularity
0035h set time slice granularity
0036h get time slice information
0037h adjust execution time
0038h release time slice
0039h wake up VM
003Ah call when idle
003Bh get next VM handle
003Ch set global timeout
003Dh set VM timeout
003Eh cancel timeout
003Fh get system time
Return: EAX = time in milliseconds that Windows has been running
0040h get VM execution time
0041h hook V86 interrupt chain
0042h get V86 interrupt vector
0043h set V86 interrupt vector
0044h get PM interrupt vector
0045h set PM interrupt vector
0046h simulate interrupt
0047h simulate IRET
0048h simulate far call
0049h simulate far jump
004Ah simulate far RET
004Bh simulate far RET N
004Ch build interrupt stack frame
004Dh simulate push
004Eh simulate pop
004Fh _HeapAllocate
0050h _HeapReAllocate
0051h _HeapFree
0052h _HeapGetSize
0053h _PageAllocate
0054h _PageReAllocate
0055h _PageFree
0056h _PageLock
0057h _PageUnLock
0058h _PageGetSizeAddr
0059h _PageGetAllocInfo
005Ah _GetFreePageCount
005Bh _GetSysPageCount
005Ch _GetVMPgCount
005Dh _MapIntoV86
005Eh _PhysIntoV86
005Fh _TestGlobalV86Mem
0060h _ModifyPageBits
0061h copy page table
0062h map linear into V86
0063h linear page lock
0064h linear page unlock
0065h _SetResetV86Pageabl
0066h _GetV86PageableArray
0067h _PageCheckLinRange
0068h page out dirty pages
0069h discard pages
006Ah _GetNulPageHandle
006Bh get first V86 page
006Ch map physical address to linear address
006Dh _GetAppFlatDSAlias
006Eh _SelectorMapFlat
006Fh _GetDemandPageInfo
0070h _GetSetPageOutCount
0071h hook V86 page
0072h assign device V86 pages
0073h deassign device V86 pages
0074h get array of V86 pages for device
0075h _SetNULPageAddr
0076h allocate GDT selector
0077h free GDT selector
0078h allocate LDT selector
0079h free LDT selector
007Ah _BuildDescriptorDWORDs
007Bh get descriptor
007Ch set descriptor
007Dh toggle HMA
007Eh get fault hook addresses
007Fh hook V86 fault
0080h hook PM fault
0081h hook VMM fault
0082h begin nested V86 execution
0083h begin nested execution
0084h execute V86-mode interrupt
0085h resume execution
0086h end nested execution
0087h allocate PM application callback area
0088h get current PM application callback area
0089h set V86 execution mode
008Ah set PM execution mode
008Bh begin using locked PM stack
008Ch end using locked PM stack
008Dh save client state
008Eh restore client state
008Fh execute VxD interrupt
0090h hook device service
EAX = service ID (high word = VxD ID, low = service number)
ESI -> new handler
0091h hook device V86 API
0092h hook device PM API
0093h system control (see also #1972)
0094h simulate I/O
0095h install multiple I/O handlers
0096h install I/O handler
0097h enable global trapping
0098h enable local trapping
0099h disable global trapping
009Ah disable local trapping
009Bh create list
009Ch destroy list
009Dh allocate list
009Eh attach list
009Fh attach list tail
00A0h insert into list
00A1h remove from list
00A2h deallocate list
00A3h get first item in list
00A4h get next item in list
00A5h remove first item in list
00A6h add instance item
00A7h allocate device callback area
00A8h allocate global V86 data area
00A9h allocate temporary V86 data area
00AAh free temporary V86 data area
00ABh get decimal integer from profile
00ACh convert decimal string to integer
00ADh get fixed-point number from profile
00AEh convert fixed-point string
00AFh get hex integer from profile
00B0h convert hex string to integer
00B1h get boolean value from profile
00B2h convert boolean string
00B3h get string from profile
00B4h get next string from profile
00B5h get environment string
00B6h get exec path
00B7h get configuration directory
00B8h open file
00B9h get PSP segment
00BAh get DOS vectors
00BBh get machine information
00BCh get/set HMA information
00BDh set system exit code
00BEh fatal error handler
00BFh fatal memory error
00C0h update system clock
00C1h test if debugger installed
00C2h output debugger string
00C3h output debugger character
00C4h input debugger character
00C5h debugger convert hex to binary
00C6h debugger convert hex to decimal
00C7h debugger test if valid handle
00C8h validate client pointer
00C9h test reentry
00CAh queue debugger string
00CBh log procedure call
00CCh debugger test current VM
00CDh get PM interrupt type
00CEh set PM interrupt type
00CFh get last updated system time
00D0h get last updated VM execution time
00D1h test if double-byte character-set lead byte
00D2h _AddFreePhysPage
00D3h _PageResetHandlePAddr
00D4h _SetLastV86Page
00D5h _GetLastV86Page
00D6h _MapFreePhysReg
00D7h _UnmapFreePhysReg
00D8h _XchgFreePhysReg
00D9h _SetFreePhysRegCalBk
00DAh get next arena (MCB)
00DBh get name of ugly TSR
00DCh get debug options
00DDh set physical HMA alias
00DEh _GetGlblRng0V86IntBase
00DFh add global V86 data area
00E0h get/set detailed VM error
00E1h Is_Debug_Chr
00E2h clear monochrome screen
00E3h output character to mono screen
00E4h output string to mono screen
00E5h set current position on mono screen
00E6h get current position on mono screen
00E7h get character from mono screen
00E8h locate byte in ROM
00E9h hook invalid page fault
00EAh unhook invalid page fault
00EBh set delete on exit file
0129h "_Register_Win32_Services"
013Fh get start of VxD chain (see also #1972 at INT 2F/AX=1684h/BX=0017h)
0146h "Get_DDB"
0148h "_RegOpenKey"
0149h "_RegCloseKey"
0151h "_RegQueryValueEx"
0191h ...last service for Windows95 SP1
811Ch ??? (called by KEYREMAP.VXD)
EAX = service ID (high word = VxD ID, low = service number)
ESI -> handler
SeeAlso: #0673,INT 2F/AX=1684h/BX=0001h
(Table 0673)
Values for VPICD (VxD ID 0003h) service number:
00h get version
01h virtualize IRQ
02h set interrupt request
03h clear interrupt request
04h physical EOI
05h get complete status
06h get status
07h test physical request
08h physically mask
09h physically unmask
0Ah set automatic masking
0Bh get IRQ complete status
0Ch convert handle to IRQ
0Dh convert IRQ to interrupt
0Eh convert interrupt to IRQ
0Fh call on hardware interrupt
10h force default owner
11h force default behavior
18h ...last service for Windows95 SP1
SeeAlso: #0672,#0674,INT 2F/AX=1684h/BX=0003h
(Table 0674)
Values for VDMAD (VxD ID 0004h) service number:
00h get version
01h virtualize channel
02h get region information
03h set region information
04h get virtual state
05h set virtual state
06h set physical state
07h mask channel
08h unmask channel
09h lock DMA region
0Ah unlock DMA region
0Bh scatter lock
0Ch scatter unlock
0Dh reserve buffer space
0Eh request buffer
0Fh release buffer
10h copy to buffer
11h copy from buffer
12h default handler
13h disable translation
14h enable translation
15h get EISA address mode
16h set EISA address mode
17h unlock DMA region (ND)
...
21h ...last service for Windows95 SP1
SeeAlso: #0673,#1969,#1981 at INT 2F/AX=1684h/BX=0444h
(Table 0675)
Values for VTD (VxD ID 0005h) service number:
0000h get version
0001h update system clock
0002h get interrupt period
0003h begin minimum interrupt period
0004h end minimum interrupt period
0005h disable trapping
0006h enable trapping
0007h get real time
Return: EDX:EAX = time in 840ns units since Windows was started
0008h "VTD_Get_Date_And_Time"
0009h ???
000Ah ...last service for Windows95 SP1
SeeAlso: #1969 at INT 2F/AX=1684h/BX=0005h
(Table 0676)
Values for V86MMGR (VxD ID 0006h) service number:
00h get version
01h allocate V86 pages
02h set EMS and XMS limits
03h get EMS and XMS limits
04h set mapping information
05h get mapping information
06h Xlat API
07h load client pointer
08h allocate buffer
09h free buffer
0Ah get Xlat buffer state
0Bh set Xlat buffer state
0Ch get VM flat selector
0Dh map pages
0Eh free page map region
0Fh _LocalGlobalReg
10h get page status
11h set local A20
12h reset base pages
13h set available mapped pages
14h "V86MMGR_NoUMBInitCalls"
15h "V86MMGR_Get_EMS_XMS_Avail"
16h "V86MMGR_Toggle_HMA"
17h "V86MMGR_Dev_Init"
18h "V86MMGR_Alloc_UM_Page"
SeeAlso: #1969,#0677,INT 2F/AX=1684h"DEVICE API"
(Table 0677)
Values for PageSwap (VxD ID 0007h) service number:
00h get version
01h test create
02h create swap file
03h destroy swap file
04h in
05h out
06h test if I/O valid
07h "Read_Or_Write"
08h "Grow_File"
09h "Init_File"
SeeAlso: #0676,#3349,#0678,#1970
(Table 3349)
Values for REBOOT (VxD ID 0009h) service number:
00h ???
03h ...last service for Windows95 SP1
SeeAlso: #0677,#0678,#1968
(Table 0678)
Values for VDD (VxD ID 000Ah) service number:
00h get version
01h PIF state
02h get GrabRtn
03h hide cursor
04h set VM type
05h get ModTime
06h set HCurTrk
07h message clear screen
08h message foreground color
09h message background color
0Ah message output text
0Bh message set cursor position
0Ch query access
0Dh "VDD_Check_Update_Soon"
...
16h ...last service for Windows95 SP1
SeeAlso: #3349,#0679,#1970
(Table 0679)
Values for VSD (VxD ID 000Bh) service number:
00h get version
01h bell
02h sound on
03h "VSD_TakeSoundPort"
SeeAlso: #0678,#0680
(Table 0680)
Values for VMD / VMOUSE (VxD ID 000Ch) service number:
00h get version
01h set mouse type
02h get mouse owner
03h "VMOUSE_Post_Pointer_Message"
04h "VMOUSE_Set_Cursor_Proc"
05h "VMOUSE_Call_Cursor_Proc"
06h "VMOUSE_Set_Mouse_Data~Get_Mouse_Data"
07h "VMOUSE_Manipulate_Pointer_Message"
08h "VMOUSE_Set_Middle_Button"
...
0Bh ...last service for Windows95 SP1
SeeAlso: #0679,#0681,INT 2F/AX=1684h/BX=000Ch
(Table 0681)
Values for VKD (VxD ID 000Dh) service number:
00h get version
01h define hotkey
02h remove hotkey
03h locally enable hotkey
04h locally disable hotkey
05h reflect hotkey
06h cancel hotkey state
07h force keys
08h get keyboard owner
09h define paste mode
0Ah start pasting
0Bh cancel paste
0Ch get message key
0Dh peek message key
0Eh flush message key queue
14h ...last service for Windows95 SP1
SeeAlso: #0680,#0682
(Table 0682)
Values for VCD (VxD ID 000Eh) service number:
00h get version
01h set port global
02h get focus
03h virtualize port
...
0Ch ...last service for Windows95 SP1
SeeAlso: #0681,#0683
(Table 0683)
Values for BlockDev/IOS (VxD ID 0010h) service number:
00h get version
01h register device
02h find INT 13 drive
03h get device list
04h send command
05h command complete
06h synchronous command
07h "IOS_Register"
08h "IOS_Requestor_Service"
09h "IOS_Exclusive_Access"
0Ah "IOS_Send_Next_Command"
0Bh "IOS_Set_Async_Time_Out"
0Ch "IOS_Signal_Semaphore_No_Switch"
0Dh "IOSIdleStatus"
0Eh "IOSMapIORSToI24"
0Fh "IOSMapIORSToI21"
10h ...last service for Windows95 SP1
SeeAlso: #0682,#3350
(Table 3350)
Values for VMCPD (VxD ID 0011h) service number:
00h "VMCPD_Get_Version"
01h "VMCPD_Get_Virt_State"
02h "VMCPD_Set_Virt_State"
...
08h ...last service for Windows95 SP1
SeeAlso: #0683,#0684,#1968
(Table 0684)
Values for EBIOS (VxD ID 0012h) service number:
00h get version
01h get unused memory
SeeAlso: #3350,#0685
(Table 0685)
Values for VNETBIOS (VxD ID 0014h) service number:
00h get version
01h register
02h submit
03h enum
04h deregister
05h register2
06h map
07h enum2
SeeAlso: #0684,#0686
(Table 0686)
Values for DOSMGR (VxD ID 0015h) service number:
00h get version
01h set exec VM data
02h coyp VM drive state
03h execute VM
04h get InDOS pointer
05h add device
06h remove device
07h instance device
08h get DOS critical status
09h enable InDOS polling
0Ah backfill allowed
0Bh "LocalGlobalReg"
0Ch "Init_UMB_Area"
0Dh "Begin_V86_App"
0Eh "End_V86_App"
0Fh "Alloc_Local_Sys_VM_Mem"
10h ???
11h ???
12h ...last service for Windows95 SP1
SeeAlso: #0685,#1971 at INT 2F/AX=1684h/BX=0015h
(Table 0687)
Values for SHELL (VxD ID 0017h) service number:
00h get version
01h resolve contention
02h event
03h SYSMODAL message
04h message
05h get VM information
06h "_SHELL_PostMessage"
07h "_SHELL_WinExec"
08h "_SHELL_CallDll"
09h "SHELL_OpenClipboard"
0Ah "SHELL_SetClipboardData"
0Bh "SHELL_GetClipboardData"
0Ch "SHELL_CloseClipboard"
0Dh "_SHELL_Install_Taskman_Hooks"
0Eh "SHELL_Hook_Properties"
0Fh "SHELL_Unhook_Properties"
10h "SHELL_OEMKeyScan"
11h "SHELL_Update_User_Activity"
...
1Bh ...last service for Windows95 SP1
SeeAlso: #0686,#0688,#1972 at INT 2F/AX=1684h/BX=0017h
(Table 0688)
Values for VMPoll (VxD ID 0018h) service number:
00h get version
01h enable/disable
02h reset detection
03h check idle
SeeAlso: #0675,#1972 at INT 2F/AX=1684h/BX=0017h
(Table 0689)
Values for DOSNET (VxD ID 001Ah) service number:
00h get version
01h send FILESYSCHANGE
02h do PSP adjust
SeeAlso: #0688,#3351
(Table 3351)
Values for LoadHi (VxD ID 001Ch) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = minor)
ESI -> ASCIZ signature "LoadHi"
SeeAlso: #0689,#0690
(Table 0690)
Values for Int13 (VxD ID 0020h) service number:
00h get version
01h device registered
02h translate VM interrupt
03h hooking BIOS interrupt
04h unhooking BIOS interrupt
SeeAlso: #3351,#0691
(Table 0691)
Values for PAGEFILE (VxD ID 0021h) service number:
00h get version
01h init file
02h clean up
03h grow file
04h read or write
05h cancel
06h test I/O valid
07h "Get_Size_Info"
08h "Set_Async_Manager"
09h "Call_Async_Manager"
SeeAlso: #0690,#1976 at INT 2F/AX=1684h/BX=0021h
(Table 3505)
Values for VPOWERD (VxD ID 0026h) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = minor)
01h get APM BIOS version
Return: CF clear
EAX = APM BIOS version
02h get current power management level
Return: CF clear
EAX = power management level
03h enable/disable power management (see INT 15/AX=5308h)
Return: EAX = error code (see #3506) or 00000000h if successful
04h set power state (see INT 15/AX=5307h)
???
Return: EAX = error code (see #3506) or 00000000h if successful
05h set system power status
Return: EAX = error code (see #3506) or 00000000h if successful
06h restore APM power-on defaults (see INT 15/AX=5309h)
Return: EAX = error code (see #3506) or 00000000h if successful
07h get power status (see INT 15/AX=530Ah)
Return: ???
08h get APM 1.1 power state (see INT 15/AX=530Ch)
Return: ???
09h invoke OEM APM function
??? -> bufer containing parameters for INT 15/AX=5380h
Return: EAX = error code (see #3506) or 00000000h if successful
buffer updated if successful
0Ah register power handler
???
Return: EAX = error code (see #3506) or 00000000h if successful
0Bh deregister power handler
???
Return: EAX = error code (see #3506) or 00000000h if successful
0Ch Win32 get system power status
0Dh Win32 set system power status
SeeAlso: #0691,#3352,INT 2F/AX=1684h/BX=0026h
(Table 3352)
Values for VXDLDR (VxD ID 0027h) service number:
00h "VXDLDR_Get_Version"
01h "VXDLDR_LoadDevice"
02h "VXDLDR_UnloadDevice"
03h "VXDLDR_DevInitSucceeded"
04h "VXDLDR_DevInitFailed"
05h "VXDLDR_GetDeviceList"
06h "VXDLDR_UnloadMe"
07h "PELDR_LoadModule"
08h "PELDR_GetModuleHandle"
09h "PELDR_GetModuleUsage"
0Ah "PELDR_GetEntryPoint"
0Bh "PELDR_GetProcAddress"
0Ch "PELDR_AddExportTable"
0Dh "PELDR_RemoveExportTable"
0Eh "PELDR_FreeModule"
...
11h ...last service for Windows95 SP1
SeeAlso: #0691,#3353
(Table 3353)
Values for NDIS (VxD ID 0028h) service number:
00h "NdisGetVersion"
01h "NdisAllocateSpinLock"
02h "NdisFreeSpinLock"
03h "NdisAcquireSpinLock"
04h "NdisReleaseSpinLock"
05h "NdisOpenConfiguration"
06h "NdisReadConfiguration"
07h "NdisCloseConfiguration"
08h "NdisReadEisaSlotInformation"
09h "NdisReadMcaPosInformation"
0Ah "NdisAllocateMemory"
0Bh "NdisFreeMemory"
0Ch "NdisSetTimer"
0Dh "NdisCancelTimer"
0Eh "NdisStallExecution"
0Fh "NdisInitializeInterrupt"
10h "NdisRemoveInterrupt"
11h "NdisSynchronizeWithInterrupt"
12h "NdisOpenFile"
13h "NdisMapFile"
14h "NdisUnmapFile"
15h "NdisCloseFile"
16h "NdisAllocatePacketPool"
17h "NdisFreePacketPool"
18h "NdisAllocatePacket"
19h "NdisReinitializePacket"
1Ah "NdisFreePacket"
1Bh "NdisQueryPacket"
1Ch "NdisAllocateBufferPool"
1Dh "NdisFreeBufferPool"
1Eh "NdisAllocateBuffer"
1Fh "NdisCopyBuffer"
20h "NdisFreeBuffer"
21h "NdisQueryBuffer"
22h "NdisGetBufferPhysicalAddress"
23h "NdisChainBufferAtFront"
24h "NdisChainBufferAtBack"
25h "NdisUnchainBufferAtFront"
26h "NdisUnchainBufferAtBack"
27h "NdisGetNextBuffer"
28h "NdisCopyFromPacketToPacket"
29h "NdisRegisterProtocol"
2Ah "NdisDeregisterProtocol"
2Bh "NdisOpenAdapter"
2Ch "NdisCloseAdapter"
2Dh "NdisSend"
2Eh "NdisTransferData"
2Fh "NdisReset"
30h "NdisRequest"
31h "NdisInitializeWrapper"
32h "NdisTerminateWrapper"
33h "NdisRegisterMac"
34h "NdisDeregisterMac"
35h "NdisRegisterAdapter"
36h "NdisDeregisterAdapter"
37h "NdisCompleteOpenAdapter"
38h "NdisCompleteCloseAdapter"
39h "NdisCompleteSend"
3Ah "NdisCompleteTransferData"
3Bh "NdisCompleteReset"
3Ch "NdisCompleteRequest"
3Dh "NdisIndicateReceive"
3Eh "NdisIndicateReceiveComplete"
3Fh "NdisIndicateStatus"
40h "NdisIndicateStatusComplete"
41h "NdisCompleteQueryStatistics"
42h "NdisEqualString"
43h "NdisNetAddressStringToBinary"
44h "NdisReadNetworkAddress"
45h "NdisWriteErrorLogEntry"
46h "C_MapPhysToLinear"
47h "C_HeapFree"
48h "NdisAllocateSharedMemory"
49h "NdisFreeSharedMemory"
...
5Fh ...last service for Windows95 SP1
SeeAlso: #3352,#3354
(Table 3354)
Values for VWIN32 (VxD ID 002Ah) service number:
00h "VWin32_Get_Version"
01h "VWin32_Wake_For_Event"
02h "_VWIN32_QueueUserApc"
03h "_VWIN32_Get_Thread_Context"
04h "_VWIN32_Set_Thread_Context"
05h "_VWIN32_CopyMem"
06h "_VWIN32_BlockForTermination"
...
1Ch ...last service for Windows95 SP1
SeeAlso: #3353,#3355
(Table 3355)
Values for VCOMM (VxD ID 002Bh) service number:
00h "VCOMM_Get_Version"
01h "_VCOMM_Register_Port_Driver"
02h "_VCOMM_Acquire_Port"
03h "_VCOMM_Release_Port"
04h "_VCOMM_OpenComm"
05h "_VCOMM_SetCommState"
06h "_VCOMM_GetCommState"
07h "_VCOMM_SetupComm"
08h "_VCOMM_TransmitCommChar"
09h "_VCOMM_CloseComm"
0Ah "_VCOMM_GetCommQueueStatus"
0Bh "_VCOMM_ClearCommError"
0Ch "_VCOMM_GetModemStatus"
0Dh "_VCOMM_GetCommProperties"
0Eh "_VCOMM_EscapeCommFunction"
0Fh "_VCOMM_PurgeComm"
10h "_VCOMM_SetCommEventMask"
11h "_VCOMM_GetCommEventMask"
12h "_VCOMM_WriteComm"
13h "_VCOMM_ReadComm"
14h "_VCOMM_EnableCommNotification"
15h "_VCOMM_GetLastError"
16h "_VCOMM_Steal_Port"
17h "_VCOMM_SetReadCallBack"
18h "_VCOMM_SetWriteCallBack"
19h "_VCOMM_GetSetCommTimeouts"
1Ah "_VCOMM_SetWriteRequest"
1Bh "_VCOMM_SetReadRequest"
1Ch "_VCOMM_Dequeue_Request"
...
22h ...last service for Windows95 SP1
SeeAlso: #3354,#3356
(Table 3356)
Values for SPOOLER (VxD ID 002Ch) service number:
00h ???
10h ...last service for Windows95 SP1
SeeAlso: #3355,#3389
(Table 3389)
Values for VSERVER (VxD ID 0032h) service number:
00h get VSERVER version
Return: CF clear
EAX = version (AH = major, AL = minor)
EBX = ??? (00000000h)
01h allocate ???
AX = ???
ESI = ???
Return: CF clear if successful
CF set on error (table full)
02h NOP???
Return: EBX = 00000000h
03h ???
Return: ZF clear
SeeAlso: #3356,#3357,INT 2F/AX=1684h/BX=0032h
(Table 3357)
Values for CONFIGMG (VxD ID 0033h) service number:
00h ???
5Ah ...last service for Windows95 SP1
Note: the VxD services appear to be identical to the PM/V86 APIs on
INT 2F/AX=1684h
SeeAlso: #3389,#3358,INT 2F/AX=1684h/BX=0033h
(Table 3461)
Values for DWCFGMG.SYS (VxD ID 0034h) service number:
00h "CM_GetVersion" get supported DDI version
Return: EAX = 00000000h if not installed
else
AH = major version number
AL = minor version number
EBX = number of devices controlled by DWCFGMG.SYS
01h "CM_GetConfig" get device configuration
EBX = device index
EDI -> buffer for configuration information (see #1980)
Return: EAX = status (0000h successful, 0001h index out of range)
02h "CM_LockConfig" lock device configuration
EDI -> configuration information (see #1980)
Return: EAX = status
0000h successful
0001h resource conflict
0002h invalid request
03h "CM_UnlockConfig" unlock device configuration
EDI -> configuration information (see #1980)
Return: EAX = status (0000h successful, 0001h invalid request)
04h "CME_QueryResources"
05h "CME_AllocResources"
06h "CME_DeallocResources"
SeeAlso: INT 2F/AX=1684h/BX=0034h
(Table 3358)
Values for VFBACKUP (VxD ID 0036h) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = minor)
05h ...last service for Windows95 SP1
SeeAlso: #3357,#3509
(Table 3509)
Values for ENABLE (VxD ID 0037h) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = minor)
01h ??? (performs VMMCall 1800Eh, then falls through to service 04h)
Return: EAX = system time???
02h get current ???
Return: EAX = ???
03h ??? (schedules a global event via VMMCall 1800Eh)
Return: ???
04h get system time??? (performs VMMCall 100CFh)
Return: EAX = system time???
05h call ??? priority event
Return: nothing
06h set ??? / get ???
EDI -> buffer containing data to copy into VxD and space for results
Return: EDI buffer updated
07h ???
EBX = ??? flags (bits 2,15,17,18 checked)
EDI -> ???
???
Return: ???
08h ??? (schedules a global event via VMMCall 1800Eh)
Return: ???
09h get ??? data
EDI -> buffer for data (see #3510)
Return: EDI buffer updated if large enough
SeeAlso: #3358,#3359,#3508 at INT 2F/AX=1684h/BX=0037h
Format of ENABLE.VXD ??? data:
Offset Size Description (Table 3510)
00h DWORD (ret) length of data, including this word
(call) length of buffer
04h DWORD -> 24-byte (or larger) buffer
08h DWORD -> 20-byte buffer
0Ch DWORD -> 260-byte buffer
10h DWORD -> 260-byte buffer
SeeAlso: #3509
(Table 3359)
Values for VCOND (VxD ID 0038h) service number:
00h get VCOND version
Return: CF clear
EAX = version (AH = major, AL = minor)
01h ???
SeeAlso: #3511,#3509,#3360
(Table 3511)
Values for Windows95 VCOND (Vxd ID 0038h) Win32 service number:
00h get VCOND version
Return: EAX = version (AH = major, AL = minor)
...
34h ...last Win32 service for Windows95 SP1
SeeAlso: #3359
(Table 3360)
Values for BIOS (VxD ID 003Dh) service number:
00h get version???
01h ???
02h ???
03h ???
SeeAlso: #3359,#3390
(Table 3390)
Values for WSOCK (VxD ID 003Eh) service number:
00h get WSOCK version
Return: CF clear
AH = major version
AL = minor version
EAX high word = 0000h
01h ???
EAX = ??? or 00000000h
Return: CF clear if successful
EAX = 00000000h
CF set on error
EAX = ???
02h ???
EAX = ??? or 00000000h
Return: ???
03h ???
04h ...last service for Windows95 SP1
SeeAlso: #3360,#3361
(Table 3361)
Values for IFSMGR (VxD ID 0040h) service number:
00h get version
01h "RegisterMount"
02h "RegisterNet"
03h "RegisterMailSlot"
04h "Attach"
05h "Detach"
06h "Get_NetTime"
07h "Get_DOSTime"
08h "SetupConnection"
09h "DerefConnection"
0Ah "ServerDOSCall"
0Bh "CompleteAsync"
0Ch "RegisterHeap"
0Dh "GetHeap"
0Eh "RetHeap"
0Fh "CheckHeap"
10h "CheckHeapItem"
11h "FillHeapSpare"
12h "Block"
13h "Wakeup"
14h "Yield"
15h "SchedEvent"
16h "QueueEvent"
17h "KillEvent"
18h "FreeIOReg"
19h "MakeMailSlot"
1Ah "DeleteMailSlot"
1Bh "WriteMailSlot"
1Ch "PopUp"
1Dh "printf"
1Eh "AssertFailed"
1Fh "LogEntry"
20h "DebugMenu"
21h "DebugVars"
22h "GetDebugString"
23h "GetDebugHexNum"
24h "NetFunction"
25h "DoDelAllUses"
26h "SetErrString"
27h "GetErrString"
28h "SetReqHook"
29h "SetPathHook"
2Ah "UseAdd"
2Bh "UseDel"
2Ch "InitUseAdd"
2Dh "ChangeDir"
2Eh "DelAllUses"
2Fh "CDROM_Attach"
30h "CDROM_Detach"
31h "Win32DupHandle"
32h "Ring0_FileIO"
33h "Toggle_Extended_File_Handle"
34h "IFSMgr_GetDrive_Info"
35h "IFSMgr_Ring0GetDriveInfo"
36h "IFSMgr_BlockNoEvents"
37h "IFSMgr_NetToDosTime"
38h "IFSMgr_DosToNetTime"
39h "IFSMgr_DosToWin32Time"
3Ah "IFSMgr_Win32ToDosTime"
3Bh "IFSMgr_NetToWin32Time"
3Ch "IFSMgr_Win32ToNetTime"
3Dh "IFSMgr_MetaMatch"
3Eh "IFSMgr_TransMatch"
3Fh "IFSMgr_CallProvider"
40h "UniToBCS"
41h "UniToBCSPath"
42h "BCSToUni"
43h "UniToUpper"
44h "UniCharToOEM"
45h "CreateBasis"
46h "MatchBasisName"
47h "AppendBasisTail"
48h "FcbToShort"
49h "ShortToFcb"
4Ah "IFSMgr_ParsePath"
4Bh "Query_PhysLock"
4Ch "_VolFlush"
4Dh "NotifyVolumeArrival"
4Eh "NotifyVolumeRemoval"
4Fh "QueryVolumeRemoval"
50h "IFSMgr_FSDUnmountCFSD"
51h "IFSMgr_GetConversionTablePtrs"
52h "IFSMgr_CheckAccessConflict"
53h "IFSMgr_LockFile"
54h "IFSMgr_UnlockFile"
55h "IFSMgr_RemoveLocks"
56h "IFSMgr_CheckLocks"
57h "IFSMgr_CountLocks"
58h "IFSMgr_ReassignLockFileInst"
59h "IFSMgr_UnassignLockList"
5Ah "IFSMgr_MountChildVolume"
5Bh "IFSMgr_UnmountChildVolume"
5Ch "IFSMgr_SwapDrives"
5Dh "IFSMgr_FSDMapFHtoIOREQ"
5Eh "IFSMgr_FSDParsePath"
5Fh "IFSMgr_FSDAttachSFT"
60h "IFSMgr_GetTimeZoneBias"
61h "IFSMgr_PNPEvent"
62h "IFSMgr_RegisterCFSD"
63h "IFSMgr_Win32MapExtendedHandleToSFT"
64h "IFSMgr_DbgSetFileHandleLimit"
65h "IFSMgr_Win32MapSFTToExtendedHandle"
66h "IFSMgr_FSDGetCurrentDrive"
...
74h ...last service for Windows95 SP1
SeeAlso: #3390,#3362
(Table 3362)
Values for VCDFSD (VxD ID 0041h) service number:
00h get VCDFSD version???
01h ???
02h ???
03h ???
SeeAlso: #3361,#3363
(Table 3363)
Values for PERF (VxD ID 0048h) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = minor)
01h start performance monitoring??? (creates/sets a registry key)
02h end performance monitoring??? (deletes registry key)
03h start performance monitoring??? (creates/sets a registry key)
04h end performance monitoring??? (deletes registry key)
SeeAlso: #3362,#3364
(Table 3364)
Values for VFLATD (VxD ID 011Fh) service number:
00h get VFLATD version???
01h ???
SeeAlso: #3363,#3365
(Table 3365)
Values for vjoyd (VxD ID 0449h) service number:
00h get vjoyd version???
01h ???
SeeAlso: #3364,#3366
(Table 3366)
Values for mmdevldr (VxD ID 044Ah) service number:
00h get mmdevldr version???
01h ???
02h ???
03h ???
04h ???
05h ???
SeeAlso: #3365,#3367
(Table 3367)
Values for VNetSup (VxD ID 0480h) service number:
00h get VNetSup version???
01h ???
02h ???
03h ???
04h ???
05h ???
06h ???
SeeAlso: #3366,#3368
(Table 3368)
Values for VREDIR (VxD ID 0481h) service number:
00h ???
10h ...last service for Windows95 SP1
SeeAlso: #3367,#3369
(Table 3369)
Values for VSHARE (VxD ID 0483h) service number:
00h get VSHARE version???
SeeAlso: #3368,#3370
(Table 3370)
Values for NWLINK (VxD ID 0487h) service number:
00h ???
06h ...last service for Windows95 SP1
SeeAlso: #3369,#3371,#1968
(Table 3371)
Values for VTDI (VxD ID 0488h) service number:
00h ???
0Dh ...last service for Windows95 SP1
SeeAlso: #3370,#3372
(Table 3372)
Values for VIP (VxD ID 0489h) service number:
00h ???
08h ...last service for Windows95 SP1
SeeAlso: #3371,#3373
(Table 3373)
Values for MSTCP (VxD ID 048Ah) service number:
00h get MSTCP version???
SeeAlso: #3372,#3374
(Table 3374)
Values for VCACHE (VxD ID 048Bh) service number:
00h "VCACHE_Get_Version"
01h "VCACHE_Register"
02h "VCACHE_GetSize"
03h "VCACHE_CheckAvail"
04h "VCACHE_FindBlock"
05h "VCACHE_FreeBlock"
06h "VCACHE_MakeMRU"
07h "VCACHE_Hold"
08h "VCACHE_Unhold"
09h "VCACHE_Enum"
0Ah "VCACHE_TestHandle"
0Bh "VCACHE_VerifySums"
0Ch "VCACHE_RecalcSums"
0Dh "VCACHE_TestHold"
0Eh "VCACHE_GetStats"
...
18h ...last service for Windows95 SP1
SeeAlso: #3373,#3375
(Table 3375)
Values for NWREDIR (VxD ID 048Eh) service number:
00h get NWREDIR version???
01h ???
SeeAlso: #3374,#3383
(Table 3383)
Values for FILESEC (VxD ID 0491h) service number:
00h ???
10h ...last service for Windows95 SP1
SeeAlso: #3375,#3387
(Table 3387)
Values for NWSERVER (VxD ID 0492h) service number:
00h get NWSERVER version???
01h ???
02h ???
03h ???
SeeAlso: #3383,#3385
(Table 3385)
Values for MSSP/NWSP (VxD ID 0493h) service number:
00h ???
06h ...last service for Windows95 SP1
SeeAlso: #3387,#3376
(Table 3376)
Values for NSCL (VxD ID 0494h) service number:
00h get NSCL version???
01h ???
02h ???
SeeAlso: #3385,#3503
(Table 3503)
Values for AFVXD (VxD ID 0495h) service number:
00h get version
Return: CF clear
AX = version (AH = high, AL = low)
01h ???
EAX -> ???
EBX -> ???
ECX = ???
Return: ???
02h ???
EAX -> ???
Return: ???
SeeAlso: #3376,#3386
(Table 3386)
Values for NDIS2SUP (VxD ID 0496h) service number:
00h get NDIS2SUP version???
01h ???
SeeAlso: #3503,#3388
(Table 3388)
Values for Splitter (VxD ID 0498h) service number:
00h get Splitter version
Return: CF clear
EAX = version (00000001h)
01h ???
02h ???
03h hook/unhook VMM "hook device service" service
EAX = request (0 = unhook, nonzero = hook)
Return: if EAX nonzero on entry, Splitter's service 04h replaces VMM
service 0090h; otherwise, default handler is restored
04h Splitter "hook device service" handler
SeeAlso: #3386,#3377
(Table 3377)
Values for PPPMAC (VxD ID 0499h) service number:
00h ???
09h ...last service for Windows95 SP1
SeeAlso: #3388,#3378,#1968
(Table 3378)
Values for VDHCP (VxD ID 049Ah) service number:
00h get VDHCP version???
01h ???
02h ???
03h ???
SeeAlso: #3377,#3379
(Table 3379)
Values for VNBT (VxD ID 049Bh) service number:
00h get VNBT version???
SeeAlso: #3378,#3384
(Table 3384)
Values for LOGGER (VxD ID 049Dh) service number:
00h get LOGGER version???
01h ???
02h ???
03h ???
04h ???
SeeAlso: #3379,#3380
(Table 3380)
Values for VStlthD (VxD ID 3098h) service number:
00h get version
Return: CF clear
EAX = version (AH = major, AL = BCD minor)
01h ???
02h get current ???
Return: CF clear
EDX = current value of ???
03h ???
SeeAlso: #3384,#3391
(Table 3391)
Values for WSVV (VxD ID 30F6h) service number:
00h get WSVV version???
SeeAlso: #3380,#3381
(Table 3381)
Values for ASPIENUM (VxD ID 33FCh) service number:
00h get ASPIENUM version???
01h ???
02h ???
03h ???
SeeAlso: #3391,#3382
(Table 3382)
Values for DSOUND (VxD ID 357Eh) service number:
00h get DSOUND version???
01h ???
02h ???
SeeAlso: #3381,#1968
--------G-21---------------------------------
INT 21 - COMTROL HOSTESS i/ISA DEBUGGER - GET SEGMENT FOR CONTROL PROGRAM USE
???
Return: AX = first segment available for control program use
SeeAlso: INT 20"COMTROL",INT 22"COMTROL"
--------D-2100-------------------------------
INT 21 - DOS 1+ - TERMINATE PROGRAM
AH = 00h
CS = PSP segment
Notes: Microsoft recommends using INT 21/AH=4Ch for DOS 2+
this function sets the program's return code (ERRORLEVEL) to 00h
execution continues at the address stored in INT 22 after DOS performs
whatever cleanup it needs to do (restoring the INT 22,INT 23,INT 24
vectors from the PSP assumed to be located at offset 0000h in the
segment indicated by the stack copy of CS, etc.)
if the PSP is its own parent, the process's memory is not freed; if
INT 22 additionally points into the terminating program, the
process is effectively NOT terminated
not supported by MS Windows 3.0 DOSX.EXE DOS extender
SeeAlso: AH=26h,AH=31h,AH=4Ch,INT 20,INT 22
--------D-2101-------------------------------
INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO
AH = 01h
Return: AL = character read
Notes: ^C/^Break are checked, and INT 23 executed if read
^P toggles the DOS-internal echo-to-printer flag
^Z is not interpreted, thus not causing an EOF if input is redirected
character is echoed to standard output
standard input is always the keyboard and standard output the screen
under DOS 1.x, but they may be redirected under DOS 2+
SeeAlso: AH=06h,AH=07h,AH=08h,AH=0Ah
--------v-21010F-----------------------------
INT 21 - VIRUS - "Susan" - INSTALLATION CHECK
AX = 010Fh
Return: AX = 7553h ("Su") if resident
SeeAlso: INT 16/AH=DDh"VIRUS",INT 21/AX=0B56h
--------D-2102-------------------------------
INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT
AH = 02h
DL = character to write
Return: AL = last character output (despite the official docs which state
nothing is returned) (at least DOS 2.1-5.0)
Notes: ^C/^Break are checked, and INT 23 executed if pressed
standard output is always the screen under DOS 1.x, but may be
redirected under DOS 2+
the last character output will be the character in DL unless DL=09h
on entry, in which case AL=20h as tabs are expanded to blanks
if standard output is redirected to a file, no error checks (write-
protected, full media, etc.) are performed
SeeAlso: AH=06h,AH=09h
--------D-2103-------------------------------
INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX
AH = 03h
Return: AL = character read
Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
STDAUX is usually the first serial port
SeeAlso: AH=04h,INT 14/AH=02h,INT E0/CL=03h
--------D-2104-------------------------------
INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX
AH = 04h
DL = character to write
Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
STDAUX is usually the first serial port
if STDAUX is busy, this function will wait until it becomes free
SeeAlso: AH=03h,INT 14/AH=01h,INT E0/CL=04h
--------D-2105-------------------------------
INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER
AH = 05h
DL = character to print
Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
STDPRN is usually the first parallel port, but may be redirected under
DOS 2+
if the printer is busy, this function will wait
SeeAlso: INT 17/AH=00h
--------D-2106-------------------------------
INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT
AH = 06h
DL = character (except FFh)
Return: AL = character output (despite official docs which state nothing is
returned) (at least DOS 2.1-5.0)
Notes: does not check ^C/^Break
writes to standard output, which is always the screen under DOS 1.x,
but may be redirected under DOS 2+
SeeAlso: AH=02h,AH=09h
--------D-2106--DLFF-------------------------
INT 21 - DOS 1+ - DIRECT CONSOLE INPUT
AH = 06h
DL = FFh
Return: ZF set if no character available
AL = 00h
ZF clear if character available
AL = character read
Notes: ^C/^Break are NOT checked
if the returned character is 00h, the user pressed a key with an
extended keycode, which will be returned by the next call of this
function
this function reads from standard input, which is always the keyboard
under DOS 1.x, but may be redirected under DOS 2+
although the return of AL=00h when no characters are available is not
documented, some programs rely on this behavior
SeeAlso: AH=0Bh
--------D-2107-------------------------------
INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO
AH = 07h
Return: AL = character read from standard input
Notes: does not check ^C/^Break
standard input is always the keyboard under DOS 1.x, but may be
redirected under DOS 2+
if the interim console flag is set (see AX=6301h), partially-formed
double-byte characters may be returned
SeeAlso: AH=01h,AH=06h,AH=08h,AH=0Ah
--------D-2108-------------------------------
INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO
AH = 08h
Return: AL = character read from standard input
Notes: ^C/^Break are checked, and INT 23 executed if detected
standard input is always the keyboard under DOS 1.x, but may be
redirected under DOS 2+
if the interim console flag is set (see AX=6301h), partially-formed
double-byte characters may be returned
SeeAlso: AH=01h,AH=06h,AH=07h,AH=0Ah,AH=64h"DOS 3.2+"
--------D-2109-------------------------------
INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
AH = 09h
DS:DX -> '$'-terminated string
Return: AL = 24h (the '$' terminating the string, despite official docs which
state that nothing is returned) (at least DOS 2.1-5.0 and
NWDOS)
Notes: ^C/^Break are checked, and INT 23 is called if either pressed
standard output is always the screen under DOS 1.x, but may be
redirected under DOS 2+
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
SeeAlso: AH=02h,AH=06h"OUTPUT"
--------D-210A-------------------------------
INT 21 - DOS 1+ - BUFFERED INPUT
AH = 0Ah
DS:DX -> buffer (see #0692)
Return: buffer filled with user input
Notes: ^C/^Break are checked, and INT 23 is called if either detected
reads from standard input, which may be redirected under DOS 2+
if the maximum buffer size (see #0692) is set to 00h, this call returns
immediately without reading any input
SeeAlso: AH=0Ch,INT 2F/AX=4810h
Format of DOS input buffer:
Offset Size Description (Table 0692)
00h BYTE maximum characters buffer can hold
01h BYTE (call) number of chars from last input which may be recalled
(ret) number of characters actually read, excluding CR
02h N BYTEs actual characters read, including the final carriage return
--------K-210A00-----------------------------
INT 21 - WCED v1.6+ - INSTALLATION CHECK
AX = 0A00h
DS:DX -> 6-byte buffer whose first two bytes must be 00h
Return: buffer offset 02h-05h filled with "Wced" if installed
Program: WCED is a free command-line editor and history utility by Stuart
Russell
SeeAlso: AH=FFh"CED"
--------D-210B-------------------------------
INT 21 - DOS 1+ - GET STDIN STATUS
AH = 0Bh
Return: AL = status
00h if no character available
FFh if character is available
Notes: ^C/^Break are checked, and INT 23 is called if either pressed
standard input is always the keyboard under DOS 1.x, but may be
redirected under DOS 2+
if the interim console flag is set (see AX=6301h), this function
returns AL=FFh if a partially-formed double-byte character is
available
SeeAlso: AH=06h"INPUT",AX=4406h
--------v-210B56-----------------------------
INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK
AX = 0B56h
Return: AX = 4952h if resident
SeeAlso: AX=0D20h,INT 12/AX=4350h/BX=4920h,INT 13/AH=F2h,INT 21/AX=010Fh
--------D-210C-------------------------------
INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT
AH = 0Ch
AL = STDIN input function to execute after flushing buffer
other registers as appropriate for the input function
Return: as appropriate for the specified input function
Note: if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but
no input is attempted
SeeAlso: AH=01h,AH=06h"INPUT",AH=07h,AH=08h,AH=0Ah
--------D-210D-------------------------------
INT 21 - DOS 1+ - DISK RESET
AH = 0Dh
Return: (DOS 6 only) CF clear (earlier versions preserve CF)
Notes: This function writes all modified disk buffers to disk, but does not
update the directory information (that is only done when files are
closed or a SYNC call is issued)
SeeAlso: AX=5D01h,INT 13/AH=00h,INT 2F/AX=1120h
--------v-210D20-----------------------------
INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK
AX = 0D20h
Return: AX = 1971h if resident
SeeAlso: AX=0B56h,AX=1812h,AX=2C2Ch,AX=710Dh,AH=30h/DX=ABCDh
--------D-210E-------------------------------
INT 21 - DOS 1+ - SELECT DEFAULT DRIVE
AH = 0Eh
DL = new default drive (00h = A:, 01h = B:, etc)
Return: AL = number of potentially valid drive letters
Notes: under Novell NetWare, the return value is always 32, the number of
drives that NetWare supports
under DOS 3.0+, the return value is the greatest of 5, the value of
LASTDRIVE= in CONFIG.SYS, and the number of drives actually present
on a DOS 1.x/2.x single-floppy system, AL returns 2 since the floppy
may be accessed as either A: or B:
otherwise, the return value is the highest drive actually present
DOS 1.x supports a maximum of 16 drives, 2.x a maximum of 63 drives,
and 3+ a maximum of 26 drives
under Novell DOS 7, this function returns the correct LASTDRIVE value
even when the undocumented LASTDRIVE=27..32 directive was used in
CONFIG.SYS
SeeAlso: AH=19h,AH=3Bh,AH=DBh
--------v-210E--DLAD-------------------------
INT 21 U - Novell DOS 7 - SDRes v27.03 - INSTALLATION CHECK
AH = 0Eh
DL = ADh
Return: AL = BAh if installed
Program: SDRes is the resident portion of the Search&Destroy antiviral by
Fifth Generation Systems, as bundled with Novell DOS 7
Note: SDRes will terminate programs which test for the presence of viruses
using interrupt-based installation calls, saying that the program
may be infected
SeeAlso: AH=0Eh/DL=AEh,AH=0Eh/DL=AFh,AH=4Ah/BX=00B6h,INT 13/AX=A759h
--------v-210E--DLAE-------------------------
INT 21 U - Novell DOS 7 - SDRes v27.03 - CLEAR ??? FLAG
AH = 0Eh
DL = AEh
SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AFh,INT 13/AX=A759h
--------v-210E--DLAF-------------------------
INT 21 U - Novell DOS 7 - SDRes v27.03 - SET ??? FLAG
AH = 0Eh
DL = AFh
SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AEh,INT 13/AX=A759h
--------D-210F-------------------------------
INT 21 - DOS 1+ - OPEN FILE USING FCB
AH = 0Fh
DS:DX -> unopened File Control Block (see #0693,#0694)
Return: AL = status
00h successful
FFh file not found or access denied
Notes: (DOS 3.1+) file opened for read/write in compatibility mode
an unopened FCB has the drive, filename, and extension fields filled
in and all other bytes cleared
not supported by MS Windows 3.0 DOSX.EXE DOS extender
DR DOS checks password attached with AX=4303h
(FAT32 drive) this function will only succeed for creating a volume
label; FAT32 does not support FCBs for file I/O
BUG: APPEND for DOS 3.3+ corrupts DX if the file is not found
SeeAlso: AH=10h,AH=16h,AH=3Dh,AX=4303h
Format of File Control Block:
Offset Size Description (Table 0693)
00h BYTE drive number (0 = default, 1 = A, etc)
FFh is not allowed (signals extended FCB, see #0694)
01h 8 BYTEs blank-padded file name
09h 3 BYTEs blank-padded file extension
0Ch WORD current block number
0Eh WORD logical record size
10h DWORD file size
14h WORD date of last write (see #1006 at AX=5700h)
16h WORD time of last write (see #1005 at AX=5700h) (DOS 1.1+)
18h 8 BYTEs reserved (see #0695,#0696,#0697,#0698,#0699)
20h BYTE record within current block
21h DWORD random access record number (if record size is > 64 bytes, high
byte is omitted)
SeeAlso: #0694
Format of Extended File Control Block (XFCB):
Offset Size Description (Table 0694)
00h BYTE FFh signature for extended FCB
01h 5 BYTEs reserved
06h BYTE file attribute if extended FCB
07h 36 BYTEs standard FCB (all offsets are shifted by seven bytes)
SeeAlso: #0653
Format of FCB reserved field for DOS 1.0:
Offset Size Description (Table 0695)
16h WORD location in directory (if high byte = FFh, low byte is device
ID)
18h WORD number of first cluster in file
1Ah WORD current absolute cluster number on disk
1Ch WORD current relative cluster number within file
(0 = first cluster of file, 1 = second cluster, etc.)
1Eh BYTE dirty flag (00h = not dirty)
1Fh BYTE unused
Format of FCB reserved field for DOS 1.10-1.25:
Offset Size Description (Table 0696)
18h BYTE bit 7: set if logical device
bit 6: not dirty
bits 5-0: disk number or logical device ID
19h WORD starting cluster number on disk
1Bh WORD current absolute cluster number on disk
1Dh WORD current relative cluster number within file
1Fh BYTE unused
Format of FCB reserved field for DOS 2.x:
Offset Size Description (Table 0697)
18h BYTE bit 7: set if logical device
bit 6: set if open???
bits 5-0: ???
19h WORD starting cluster number on disk
1Bh WORD ???
1Dh BYTE ???
1Eh BYTE ???
1Fh BYTE ???
Format of FCB reserved field for DOS 3.x:
Offset Size Description (Table 0698)
18h BYTE number of system file table entry for file
19h BYTE attributes
bits 7,6: 00 = SHARE.EXE not loaded, disk file
01 = SHARE.EXE not loaded, character device
10 = SHARE.EXE loaded, remote file
11 = SHARE.EXE loaded, local file or device
bits 5-0: low six bits of device attribute word
---SHARE.EXE loaded, local file---
1Ah WORD starting cluster of file on disk
1Ch WORD (DOS 3.x) offset within SHARE of sharing record
(see #0978 at AH=52h)
1Eh BYTE file attribute
1Fh BYTE ???
---SHARE.EXE loaded, remote file---
1Ah WORD number of sector containing directory entry (see #0700)
1Ch WORD relative cluster within file of last cluster accessed
1Eh BYTE absolute cluster number of last cluster accessed
1Fh BYTE ???
---SHARE.EXE not loaded---
1Ah BYTE (low byte of device attribute word AND 0Ch) OR open mode
1Bh WORD starting cluster of file
1Dh WORD number of sector containing directory entry (see #0700)
1Fh BYTE number of directory entry within sector
Note: if FCB opened on character device, DWORD at 1Ah is set to the address
of the device driver header, then the BYTE at 1Ah is overwritten.
SeeAlso: #0987
Format of FCB reserved field for DOS 5.0:
Offset Size Description (Table 0699)
18h BYTE number of system file table entry for file
19h BYTE attributes
bits 7,6: 00 = SHARE.EXE not loaded, disk file
01 = SHARE.EXE not loaded, character device
10 = SHARE.EXE loaded, remote file
11 = SHARE.EXE loaded, local file or device
bits 5-0: low six bits of device attribute word
---SHARE.EXE loaded, local file---
1Ah WORD starting cluster of file on disk
1Ch WORD unique sequence number of sharing record
1Eh BYTE file attributes
1Fh BYTE unused???
---SHARE.EXE loaded, remote file---
1Ah WORD network handle
1Ch DWORD network ID
---SHARE not loaded, local device---
1Ah DWORD pointer to device driver header (see #0987)
1Eh 2 BYTEs unused???
---SHARE not loaded, local file---
1Ah BYTE extra info
bit 7: read-only attribute from SFT
bit 6: archive attribute from SFT
bits 5-0: high bits of sector number
1Bh WORD starting cluster of file
1Dh WORD low word of sector number containing directory entry
(see #0700)
1Fh BYTE number of directory entry within sector
--------!---Section--------------------------